不会飞的章鱼

熟能生巧,勤能补拙,静能生慧;念念不忘,必有回响。

题目链接

解题思路

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//复制数组
func copySlice(src []int) []int {
temp := []int{}
for _, i := range src {
temp = append(temp, i)
}
return temp
}

func subsets(nums []int) [][]int {
result := [][]int{}
result = append(result, []int{}) //第一步 包含空集
for i := 0; i < len(nums); i++ {
length := len(result)
for j := 0; j < length; j++ {
//设定两个下标元素,从0开始遍历nums的值
//里层复制数组,接着append进去下标为j的值组成nums的一个子集,再append进result数组
result = append(result, append(copySlice(result[j]), nums[i]))
}
}
return result
}

注意

阅读全文 »

题目链接

leetcode中文
leetcode

解题思路

暴力解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
func maxSubArray(nums []int) int {
//一个临时值,和一个最大值
temp,max := 0,nums[0]
for i:=0;i<len(nums);i++ {
if (temp + nums[i]) > nums[i] {
temp = temp + nums[i]
} else {
temp = nums[i]
}
if temp > max {
max = temp
}
}

return max //返回最大值
}
阅读全文 »

题目链接

leetcode中国
leetcode

思路

先考虑到特殊情况,nums数组元素为0和1,直接返回false
设置计数变量count,将第一次遍历数组得到的元素与第二次遍历数组得到的元素做判断,如果两数相等,就将count加1,在结束循环后对count做判断,count值不等于0返回true,否则返回false

这里尤其需要注意,第一次遍历数组的下标一定比第二次遍历出的数组元素下标大,举个例子:
输入[1,2,3,1],判断这个数组里有没有重复元素,第一次遍历nums[0]得到1,那么第二次遍历时肯定不能从nums[0]开始,必须从nums[1]开始往后累加,不然在同一个数组中,将下标相等的两个元素做比较,肯定相等,从而AC不通过。

阅读全文 »

今天看了一篇文章网易裁员,让保安把身患绝症的我赶出公司。我在网易亲身经历的噩梦!,让我感到无比震惊。

前些天,女朋友给我说,西瓜创客在裁员,结果第二天就有一堆西瓜创客的员工来她所在的公司面试。

我没有经历过裁员,但也间接的和HR沟通办理过离职。记得当时刚毕业在一家游戏公司干了两个多月,被通知转正没有过,下午来办理离职手续,交还电脑,工牌等。当时HR还告诉我,叫我申请主动离职,这样不会在下一家公司求职时,简历上有污点。

其实我现在很好奇,在这样一个充满利益纠纷的社会里,只要不放在档案里,那些所谓的评价真的有用吗???