Leetcode习题记录—— palindrome和数组求最大的两个数
来源:互联网 发布:周涵成都书店知乎 编辑:程序博客网 时间:2024/06/18 09:47
题目:Determine whether an integer is a palindrome. Do this without extra space.
bool isPalindrome(int x) { int left,right; if( x < 0) return false; int len = 1; while(x / len >= 10){ len *= 10; } while (x > 0){ right = x % 10; left = x / len; if(left == right){ x = (x % len) / 10; len = len / 100; } else return false; } return true;}
题目要求验证整形数是否是一个回文数,回文数是指类似123321这样的数。那么这个题目难在 Do this without extra space.也就是说不能使用数组将每一位数存储再进行比较。
解决思路也很简单,逐步取出最左侧和最右侧的数并比较,然后用:x = (x % len) / 10;裁掉left right这两个数,继续进行比较。如果全部都相同那么就说明它是一个回文数。
在此再加一道题,通常我们只求数组中最大的数,现在要求同时得到最大和次大两个数,如何做呢?
int maxArea(int* height, int heightSize) { int len = heightSize; int first_height = height[0], second_height = height[0]; for (int i = 0; i < len ; i++){ if(first_height < height[i]){ second_height = first_height; first_height = height[i]; } else if (height[i] > second_height) second_height = height[i]; } return 0;}
阅读全文
0 0
- Leetcode习题记录—— palindrome和数组求最大的两个数
- 求数组排序后相邻两个数的最大差值
- 允许交换两个数(一对)的位置 求最大子数组和
- 算法习题4:求子数组的最大和
- ms 两个数组,从每个数组中取一个数相加,求最大的前k个和
- 求两个有序数组A和B的第k大的数——Java
- 求两个数的最大公约数和最大公倍数
- vc++ 求两个数的最大公因数和最小公倍数
- 求两个子数组最大的累加和
- 求两个子数组最大的累加和
- 利用分治法求一组数据中最大的两个数和最小的两个数
- [记录]OJ题目:求子数组的最大和
- 求两个数的最大公因数
- 求两个数的最大公约公倍数
- 求两个数的最大公因数
- 求两个数的最大公因数
- [LeetCode] Maximum Subarray 求连续子数组的最大和
- 求两个数的和
- OpenCV-学习
- 启动tomcat,转到class.class的解决办法
- OkHttp3使用详解
- java连接多个mongoDB数据库
- RocketMQ(二)集群配置
- Leetcode习题记录—— palindrome和数组求最大的两个数
- 两款高性能并行计算引擎Storm和Spark简单比较
- C/C++动态内存管理
- POJ 1611 The Suspects(并查集求集合的基数)
- 洛谷 P2835 刻录光盘
- 腾讯暑期实习二面
- 关于Html5引用百度地图Api的小功能
- lintcode 比较字符串(Compare Strings ) (Java)
- 类和对象-第六天