剑指offer计划22( 位运算中等)—java

1.1、题目1

剑指 Offer 56 – I. 数组中数字出现的次数

1.2、解法

救命,真不会用位运算,还是用哈希表做吧,位运算过段时间再学习~~~
搞不来,虽然说哈希表时间和内存消耗确实高。。。。。
这里用Entry提出来遍历哈希表。取值放数组。

1.3、代码


class Solution {
    public int[] singleNumbers(int[] nums) {
        int []res = new int[2];
        int j=0;
        HashMap map = new LinkedHashMap();
        for(int i = 0; i < nums.length ; ++i){
            map.put(nums[i],map.getOrDefault(nums[i],0)+1);
        }
        for(Map.Entry entry:map.entrySet() ){
            if(entry.getValue() == 1){
                res[j]=entry.getKey();
                j++;
            }
        }
        return res;
    }
}

2.1、题目2

剑指 Offer 56 – II. 数组中数字出现的次数 II

2.2、解法

用了跟上面那题一样的解法,位运算想学你们就去看题解吧,我懒得copy过来,我也不太懂

2.3、代码


class Solution {
   public int singleNumber(int[] nums) {
        Map map = new HashMap();

        for(int i = nums.length - 1; i >= 0; --i){
            int key = nums[i];
            map.put(key, map.getOrDefault(key, 0) + 1);
        }

        for(Map.Entry entry: map.entrySet()){
            if(entry.getValue() == 1){
                return entry.getKey();
            }
        }

        return -1;
    }

}

Original: https://www.cnblogs.com/cxykhaos/p/15318644.html
Author: 程序员khaos
Title: 剑指offer计划22( 位运算中等)—java

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/598470/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球