-
Notifications
You must be signed in to change notification settings - Fork 0
算法 数组下标
Xiaolin Zhang edited this page Nov 17, 2019
·
2 revisions
for i:=0; i < n; i++{
// dosomething
}这段程序代表的意思是 dosomething n 次.
和这个是等同的
for i:=n; i > 0; i--{
// dosomething
}设数组 nums = []int{...}
倒数第一个: nums[len(nums)-1]
倒数第N个: nums[len(nums)-N] (N >=1)
- 单个数据的长度是 size, 最后一个元素是size - 1
- 将数组的长度总是记做n,m. 下标总是从0开始到n-1,m-1结束
先想一个问题, 为什么int的除法本质是什么?
右移操作. 要知道右移动的时候丢掉了最后一位的信息, 对于xxx1和xxx0来说右移的结果都是一样的.
于是我们知道,
-
0(00) -> 0(00)
-
1(01) -> 0(00)
-
2(10) -> 1(01)
-
3(11) -> 1(01)
所以每一个偶数和比他大一的奇数, 除以2得到的值都是偶数除以2的值, 看例子
3是奇数, 比他小的偶数是2, 2/2=1; 所以3和2除以2都是1
8的上一位是9, 8和9除以2都是4 ...
编程中,因为我们总是用0当做下标, 这个时候一个
-
偶数x除以2可以整除, 那么中间值必然在左边或者右边. 因为下标从0开始, 所以是从左边开始
a b M d e f
-
如果x是一个奇数, 我们说过一个奇数x和x-1除以2是一样的.所以相当于x-1平分了左右之后, 中间那个数就是奇数.
a b c M d e f