算法
tgy_rb
这个作者很懒,什么都没留下…
展开
-
832. 翻转图像
题目这一题是简单难道,注意考察两点(1) 数组翻转数组翻转可以使用取半(>>1)遍历或者使用区间[left, right] 中 left + right == col - 1 这个性质进行翻转(2) 0和1的翻转由于异或(^)是无符号相加,即1^1 = 01^0 = 1代码如下:public int[][] flipAndInvertImage(int[][] A) { int row = A.length; int col = A[0].length;原创 2021-02-24 10:05:55 · 118 阅读 · 0 评论 -
对异或运算符的认识
1. 异或的本质异或可以看作是数二进制位上的每一位无进位相加,如: 6^5如图所示,从低位到高位,依次相加,0+1 = 1, 1+0=1, 1+1=2 ,有进位,把进位抛弃,剩下到就是02. 异或到性质2.1 多个数进行异或,数的顺序不影响最后的结果 int a = 5; int b = 6; int c = 4; System.out.println((a ^ b ^ c) == (b ^ a ^ c)); // true因为多个数进行异或,只关心所有数的二进制位上那一位1的个数,原创 2020-12-23 18:28:46 · 562 阅读 · 0 评论 -
快慢指针
1. 输入链表头节点,奇数长度返回中点,偶数长度返回上中点/** * 输入链表头节点,奇数长度返回中点,偶数长度返回上中点 * @param root * @return */ public static ListNode findTopCenter(ListNode root) { if (root == null) { return null; } ListNode slow =原创 2020-12-22 15:38:11 · 149 阅读 · 0 评论