思路:
1.因为要求是线性时间复杂度要运用异或的知识。
2.异或有这么两条规则:
0^a=a
a^b ^a = b.
所以将一个初始为0变量跟这个数组的所有元素都异或一下,其中因为其他元素都是两个的 所以最后循环得到的结果就是那个单个的元素。
思路:
几种情况:
1.如果一个数是负数,第一位是“-”号,那么它一定不是回文数;
2.0是回文数;
3.除0外所有10的整数倍都不是回文数,因为数字的第一位不能为0;
4.如果一个回文数的位数为偶数,那么它前面一半的数字等于后面一半的数字反写,例如789987,前面一半是 789 ,后面一半是987,反写则是789,所以相等;
5.如果一个回文数的位数为奇数,那么它前的数字,等于剩余数字反写,再除以10取整,例如78987,前个数字为78,剩余的数字为987,反写为789,除以10取整为78,所以相等;
思路:
1.设置指针 len1 和 len2 分别指向 nums1 和 nums2 的有数字尾部,从尾部值开始比较遍历,同时设置指针 len 指向 nums1 的最末尾,每次遍历比较值大小之后,则进行填充
2.当 len1<0 时遍历结束,此时 nums2 中还有