13.罗马数字转整数
题目链接:https://leetcode-cn.com/problems/roman-to-integer/
1.思路
没啥高级的写法和优化,就单纯循环和判断……既然学了点PHP,就想用PHP写写试试。
题目链接:https://leetcode-cn.com/problems/roman-to-integer/
没啥高级的写法和优化,就单纯循环和判断……既然学了点PHP,就想用PHP写写试试。
题目链接:https://leetcode-cn.com/problems/palindrome-number/
刚刚做完整数反转,回文数好像也差不多,负数一定不是回文数;整数反转以后等于其本身为回文数。
题目要求一定要有返回值,return NULL。
1 | bool isPalindrome(long long int x){ |
是不是摸鱼了……
题目链接:https://leetcode-cn.com/problems/reverse-integer
记得曾经在洛谷做过,回去翻了下,自己定义了个10000000长度的数组……
先记录数组长度,根据数组长度定义数组,记录各个数对应的位数,再分别乘以10的次方实现反转
1.先回忆了32位的有符号数的概念(有关原码、反码、补码);
2.在给s赋值时,9*10^10赋值出错,单int是不行的:
整型变量int占4个字节,32位,取值范围是-2^31 - 2^31-1 ,也就是(-2147483648) - (2147483647),若溢出则会循环取值,
也就是2147483648溢出后回到了最小负整数-2147483648,2147483649溢出后变成了-2147483648+1=-2147483647;
而对x取绝对值时,给定数据超过了限制,即int x ,改成long long int 从根源上解决问题
3.再学习学习abs(),pow(),sizeof()……
1 | int reverse(long long int x){ |
题目链接:https://leetcode-cn.com/problems/two-sum/
开始回忆几乎快忘完的c语言知识,同时学java……
双循环遍历数组;
看题解,指针没怎么学过,哈希就更不懂了,数据结构……
return数组时,leetcode指定了returnSize分配return的有效内存,不赋值就return报错
1 | int* twoSum(int* nums, int numsSize, int target, int * returnSize){ |
一定有返回值,需要return,不然报错……