执行用时 :16 ms, 在所有 Go 提交中击败了27.90%的用户
内存消耗 :4.7 MB, 在所有 Go 提交中击败了100.00%的用户
func singleNumber(nums []int) int {sort.Ints(nums)for i:=0; i <len(nums); i++{if i ==len(nums)-1{return nums[i]}if nums[i]== nums[i+1]{i++}elseif nums[i+1]== nums[i+2]{return nums[i]}}return0}
2. 相同的数字异或结果就是0,一直异或,最后的那个数字就是answer
执行用时 :12 ms, 在所有 Go 提交中击败了80.47%的用户
内存消耗 :4.7 MB, 在所有 Go 提交中击败了100.00%的用户
func singleNumber(nums []int) int {var temp int for _, value := range nums {temp = temp ^ value }return temp
}
Me 首项加末项乘以项数/2.就是总和。然后剪掉nums里面的数组和 func missingNumber(nums []int) int {var sum intlens : len(nums)for _, value : range nums {sum value}return ((1 lens) * lens) / 2 - sum
}
Me
func findMaxConsecutiveOnes(nums []int) int {max : 0for i,j : 0, -1; i < len(nums); i {if nums[i] 0 {j i} else {if max < i -j {max i - j}}}return max
}
官解
func lengthOfLongestSubstring(s string) int {n : len(s)ans : 0subMap : make(map[byte]int)for i, j : 0, 0; j < n; j {if v, ok : subMap[byte(s[j])]; ok {if i < v {i v}}if ans < (j - i 1) {ans j - i 1}subMap[byte(s[j])] j 1}return ans
}
借用arraystack的包完成
import "github.com/emirpasic/gods/stacks/arraystack"func isValid(s string) bool {stack : arraystack.New()for _, c : range s {if c ( {stack.Push())} else if c [ {stack.Push(])} else if c { {stack.Push(})} else {if stack.…