纯0基础跟随英雄哥学习,慢慢积累吧。
有时间想想问题,发现还是成长着的。(虽然还是很菜)
1.跟着完成,留个笔记,以后回来看二分查找吧。
2.跟着学个数组先吧,后面回来补写。(二分查找)
3.过下题目增下信心吧,先设置给min大于数组的数,使其进入循环进行判断(感觉就是进去后使min变成nums[0])。最后循环结束得出所得值。
4. 知道爬楼梯爬到n阶的时候有两种结果就是在n-1级再爬一级和n-2级爬两级。而0阶没有楼梯爬,只有1一种方法就是没得爬了,而爬1阶也只有爬1级的方法。而爬二阶楼梯方案有在1级的时候再爬一级和0级时候再爬两级两种。3阶楼梯也是如此。如爬3阶楼梯有在2级爬再一级,在1级爬再2级。而爬2级的时候有2种方法,爬1级有一种方法。如此推那么可以知道爬n阶的方案就是n-1阶的方案加上n-2阶的方案的和。
5.这里用数组解决,就是n项的数等于n-1项的数加上n-2项的数。而条件规定0<=n<=30,有31个数,因此设置数组长度为31。
6就这样按题目求,0<=n<=37;设置数组长度为38.
7.设置计数器计算满足条件的数,因为数组下标j>i,所以将j放在二重循环中,并循环计算满足条件a[i]-a[j]绝对值对于k的个数。
8.对两个数组对应下标的数进行判断,如果相等则计数器加1,最后返回计数器的数。
9.题目要求每次拿一堆,就是数组内的所有数都要拿完,而且次数最少,那么用每次拿2枚的最快。而知道C语言具有取整功能,那么无论是奇数还是偶数使其加1除以2都可以算出来。如5枚,每次取两枚就是(5+1)/ 2 == 3枚,如8枚,每次取两枚就是(8+1) / 2 ==4.5化整就是4枚。