北京毫末--笔试
题型:单选择+多选+简单+编程
简单题考的指针
#include <stdio.h>
int a[] = {1,3,5,7,9};
int *p[] = {a,a+1,a+2,a+3,a+4};
void main()
{
printf("%d\t%d\t%d\n",a[4],*(a+2),*p[1]);// 9 5 3
// (a为数组的首地址,a+2为数组中index=2的地址,*(a+2)=a[2]),p是指针数组其中存的都是指针,p[1]=a+2-->*p[1]=*(a+1)=a[1])
printf("%d\t%d\t%d\n",**(p+1)+a[2],*(p+4)-*(p+0),*(a+3)%a[4]);//8 4 7
// **(p+1)=*(p[1])=*(a+1)=a[1] = 3 , *(p+4) - *(p+0) = p[4] - p[0] = a + 4 - (a + 0) = 4,
//*(a+3) % a[4] = a[3] % a[4] = 7 % 9 = 7
printf("%d\t%d",a,p);
}
code
- leetcode 顺时针输出矩阵元素
class Solution(object):
def spiralOrder(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: List[int]
"""
if not matrix:
return []
m = len(matrix)
n = len(matrix[0])
l,r,t,b = 0, n - 1, 0, m - 1
res = []
while 1:
for i in range(l, r + 1):
res.append(matrix[t][i])
t += 1
if t > b:
break
for i in range(t, b + 1):
res.append(matrix[i][r])
r -= 1
if r < l:
break
for i in range(r, l - 1, -1):
res.append(matrix[b][i])
b -= 1
if b < t:
break
for i in range(b, t - 1, -1):
res.append(matrix[i][l])
l += 1
if l > r:
break
return res
- leetcode 329. 矩阵中的最长递增路径
class Solution(object):
def func(self, matrix):
pass
#待更新