随笔分类 -  数论,博弈论,Floyd判环

这里是数学的天堂,各种头脑风暴等着你
摘要:题意:将整数倒置,该题简单但是需要注意数据的范围,难得的好题。 如果出现1000000003或者-2000000003,倒置后的数超过int的范围,因此返回0,出现这种情况可以使用long long,也可以在在乘以10时进行判断。 注意:Leetcode是用linux环境的,所以他用的是g++4.7 阅读全文
posted @ 2016-05-06 14:13 Breeze0806 阅读(434) 评论(1) 推荐(0) 编辑
摘要:题意:统计小于n的质数个数。 作为一个无节操的楼主,表示用了素数筛法,并没有用线性素数筛法。 是的,素数筛法并不是该题最佳的解法,线性素数筛法才是。 至于什么是素数筛法,请百度吧。 阅读全文
posted @ 2016-05-06 11:15 Breeze0806 阅读(201) 评论(0) 推荐(0) 编辑
摘要:题意:倒置字符串中的元音字母。 用两个下标分别指向前后两个相对的元音字母,然后交换。 注意:元音字母是aeiouAEIOU。 阅读全文
posted @ 2016-05-06 10:28 Breeze0806 阅读(396) 评论(0) 推荐(0) 编辑
摘要:题意:判断一个数是不是4的幂数,和Power of two类似。 先判断num是否大于0,再判断num是否能开根号,最后判断num开根号后的数是否是2^15的约数。 提示:4的幂数开根号就是2的幂数。 注意:判断一个双精度数a是否是0,请用fabs(a)<一个极小的数,如本题中用的是1e-9。 阅读全文
posted @ 2016-05-06 10:03 Breeze0806 阅读(198) 评论(0) 推荐(0) 编辑
摘要:求相交矩形的面积   阅读全文
posted @ 2016-03-12 22:29 Breeze0806 阅读(118) 评论(0) 推荐(0) 编辑
摘要:判断一个数是否是回文数 方法是将数回转,看回转的数和原数是否相同 1 class Solution { 2 public: 3 bool isPalindrome(int x) { 4 if(x < 0) return false; 5 int _x = 0 ; 6 int n = x; 7 for 阅读全文
posted @ 2016-03-07 20:26 Breeze0806 阅读(207) 评论(0) 推荐(0) 编辑
摘要:杨辉三角,这次要输出第rowIndex行 用滚动数组t进行递推 t[(i+1)%2][j] = t[i%2][j] + t[i%2][j - 1]; 1 class Solution { 2 public: 3 vector<int> getRow(int rowIndex) { 4 if(rowI 阅读全文
posted @ 2016-03-07 20:13 Breeze0806 阅读(129) 评论(0) 推荐(0) 编辑
摘要:给定一个数n 求出n!的末尾0的个数。 n!的末尾0产生的原因其实是n! = x * 10^m 如果能将n!是2和5相乘,那么只要统计n!约数5的个数. 1 class Solution { 2 public: 3 int trailingZeroes(int n) { 4 int ans = 0; 阅读全文
posted @ 2016-03-04 22:26 Breeze0806 阅读(136) 评论(0) 推荐(0) 编辑
摘要:杨辉三角,即组合数 递推 1 class Solution { 2 vector<vector<int>> v; 3 public: 4 Solution() { 5 for(int i = 0; i < 50; ++i){ 6 vector<int> t(i+1,1); 7 for(int j = 阅读全文
posted @ 2016-03-03 20:49 Breeze0806 阅读(126) 评论(0) 推荐(0) 编辑
摘要:同样是判断数是否是2的n次幂,同 Power of three 1 class Solution { 2 public: 3 bool isPowerOfTwo(int n) { 4 return (n > 0) && (((long long)1<<31) % n == 0); 5 } 6 }; 阅读全文
posted @ 2016-03-01 16:24 Breeze0806 阅读(153) 评论(0) 推荐(0) 编辑
摘要:判断一个数是否是3的n次幂 这里我用了一点巧,所有的int范围的3的n次幂是int范围最大的3的n次幂数(即3^((int)log3(MAXINT)) = 1162261467)的约数 这种方法是我目前觉得是最好的,不容易出错,其他的方法因为精度问题而很容易错。 1 class Solution { 阅读全文
posted @ 2016-03-01 16:21 Breeze0806 阅读(730) 评论(0) 推荐(0) 编辑
摘要:Ugly Number的质因数仅为2,3,5 将输入的数分别除以2,3,5直到不能除,看是否为1,为1的是Ugly Number,其他则不是。 1 class Solution { 2 public: 3 bool isUgly(int num) { 4 if(num<=0) return fals 阅读全文
posted @ 2016-03-01 16:12 Breeze0806 阅读(771) 评论(0) 推荐(0) 编辑
摘要:有n盏关着的灯,第k轮把序号为k倍数的关着的灯打开,开着的灯关闭。class Solution {public: int bulbSwitch(int n) { return (int)sqrt(n*1.0); }}; 阅读全文
posted @ 2016-01-16 20:59 Breeze0806 阅读(208) 评论(2) 推荐(0) 编辑
摘要:1 class Solution {2 public:3 int addDigits(int num) {4 if(num == 0 ) return num;5 else return num % 9 == 0 ? 9 : num % 9;6 }7 ... 阅读全文
posted @ 2016-01-15 12:33 Breeze0806 阅读(175) 评论(1) 推荐(1) 编辑
摘要:class Solution {public: bool canWinNim(int n) { return n % 4 != 0; }}; 阅读全文
posted @ 2016-01-15 12:31 Breeze0806 阅读(219) 评论(1) 推荐(1) 编辑
摘要:分数转小数,要求输出循环小数 如2 3 输出0.(6) 弗洛伊德判环的原理是在一个圈里,如果一个人的速度是另一个人的两倍,那个人就能追上另一个人。代码中one就是速度1的人,而two就是速度为2的人。 Fraction to Recurring Decimal可以使用弗洛伊德判环,不同的是要找到循环 阅读全文
posted @ 2016-01-13 10:45 Breeze0806 阅读(311) 评论(0) 推荐(0) 编辑
摘要:今天先谈下弗洛伊德判环,弗洛伊德判环原来是在一个圈内有两人跑步,同时起跑,一人的速度是另一人的两倍,则那个人能在下一圈追上另一个人,弗洛伊德判环能解数字会循环出现的题,比如说判断一个链表是不是循环链表。在程序中具体表现为 one = change(one); //一倍速度 two = change( 阅读全文
posted @ 2016-01-12 16:47 Breeze0806 阅读(637) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示