leetcode-136-只出现一次的数字
生活随笔
收集整理的這篇文章主要介紹了
leetcode-136-只出现一次的数字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題:
?
package com.example.demo;import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set;public class Test136 {/*** 借助hash表*/public int singleNumber(int[] nums) {Set<Integer> set = new HashSet<>();for (int i = 0; i < nums.length; i++) {if (set.contains(nums[i])) {set.remove(nums[i]);} else {set.add(nums[i]);}}int res = 0;Iterator<Integer> iterator = set.iterator();while (iterator.hasNext()) {res = iterator.next();}return res;}/*** 數學方式:res = 2(a + b + c) - (a + a + b + b + c) 結果就是c,也就是要找的值*/public int singleNumber2(int[] nums) {int sum = 0;Set<Integer> set = new HashSet<>();for (Integer integer : nums) {sum += integer;set.add(integer);}int twoSum = 0;for (Integer integer : set) {twoSum += integer;}return 2 * twoSum - sum;}/*** 利用位運算,相同的值異或為0,不同的值異或為1*/public int singleNumber1(int[] nums) {int res = nums[0];for (int i = 1; i < nums.length; i++) {res ^= nums[i];}return res;}public static void main(String[] args) {Test136 t = new Test136();int[] arr = {2, 2, 1, 1, 3};int i = t.singleNumber2(arr);System.out.println(i);} }?
總結
以上是生活随笔為你收集整理的leetcode-136-只出现一次的数字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode-350- 两个数组的交
- 下一篇: leetcode-66-加一