这几天题目逐渐难了起来
func majorityElement(nums []int) int {
if len(nums) == 1 {
return nums[0]
}
sort.Ints(nums)
return nums[len(nums)>>1]
}
脑筋急转弯,非空数组,又超过一半,那排序后的中间值就是
func firstUniqChar(s string) byte {
// 这一题难了,非得用map去写
if s == "" {
return byte(' ')
}
res := ' '
myMap := make(map[rune]int)
for _, item := range s {
_, ok := myMap[item]
if !ok {
myMap[item] = 1
} else {
myMap[item]++
}
}
fmt.Println(myMap)
for _, item := range s {
if myMap[item] == 1 {
fmt.Println(myMap[item], "222")
res = item
break
}
}
return byte(res)
}
虽然写的垃圾,但是好歹过了,还行,问题很多啊,string的range遍历是个rune,range遍历map似乎是无序的
func isStraight(nums []int) bool {
sort.Ints(nums)
nums1 := []int{}
for i := 0; i < 5; i++ {
if nums[i] != 0 {
nums1 = append(nums1, nums[i])
}
}
fmt.Println(nums1)
if len(nums1) == 0 || len(nums1) == 1 {
return true
}
for i := 0; i < len(nums1)-1; i++ {
if nums1[i] == nums1[i+1] {
return false
}
}
return nums1[len(nums1)-1]-nums1[0] <= 4
}
写了三个小时