zoukankan      html  css  js  c++  java
  • Find if all numbers appear an even number of times

    package _interview_question
    
    /**
     * Given a list/array of integers, return a boolean that states whether all numbers appear an even number of times.
    
    Example 1:
    Input: [3, 1, 2, 1, 2, 3]
    Output: true
    
    Example 2:
    Input: [1, 2, 1]
    Output: false
    
    Example 3:
    Input: [1, 2, 3]
    Output: false
     * */
    class Solution4 {
        fun findAllIfAppearEvenTime(nums: IntArray): Boolean {
            /*
            method 1: Time complexity: O(n), Space complexity: O(n)
            * */
            val map = HashMap<Int, Int>()
            for (num in nums) {
                map.put(num, map.getOrDefault(num, 0) + 1)
            }
            for (item in map) {
                if (item.value % 2 != 0) {
                    return false
                }
            }
            return true
    
            /*
            * method 2: Time complexity: O(nlogn), Space complexity: O(1)
            * */
            if (nums.size % 2 != 0) {
                return false
            }
            nums.sort()
            var sameNumAppearCount = 1
            for (i in 0 until nums.size - 1) {
                if (nums[i] == nums[i + 1]) {
                    sameNumAppearCount++
                } else {
                    if (sameNumAppearCount % 2 != 0) {
                        return false
                    } else {
                        sameNumAppearCount = 1
                    }
                }
            }
            return true
        }
    }
  • 相关阅读:
    apply()和call()的区别
    强制类型转换
    浮动理解
    清除浮动的方式
    五大主流浏览器及四大内核
    CSS引入方式
    js构建类的方法
    web前端与后端的理解区分
    Java的API及Object
    面向对象之this关键字
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/12986827.html
Copyright © 2011-2022 走看看