中级农民
- 积分
- 289
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2012-4-19
- 最后登录
- 1970-1-1
|
43 Multiply Strings
注意事项
必须要用string相乘不然就会溢出
用一个int[] pos = new int[m+n]
然后每个digit相乘 figrue out pos[left] post[right]的位置by要乘以多少个10
handle进位的问题
最后把pos转换成一个string
1197 Minimum Knight Moves
这个题目很巧妙,第一遍做比较难做出。要重点复习。
关键想法是
象限都是镜面映射的 所以我们只需要assume x,y都abs
每次走的时候只需要x-1, y-2 和x-2, y-1 向左下方走
最后终结判断是x+y = 0 reutrn 0 x+y = 2
x + y == 0 就等于x == 0 y == 0因为x y总是正数
同时又coner case
return 2 因为(0,2) 1,1 2,0 这三个点应该是2 但是你这样计算只能计算出3来
51 N-Queens
如何判断两个点是不是在一条线上
x + j == y + i || x + y == i + j || x == i
同时要每一排每一排的处理 因为你一排里面只能放一个Q
需要一个
char[][] board initialize with全部 .
然后就dfs
dfs的其实是row, column的for loop发生在dfs的 function里面
选一个点setup成Q 如果isValid 就 fill(board, res, i+1, n);
|
|