1.  

  1. class Solution {
  2. public:
  3. int hammingWeight(uint32_t n) {
  4. int k=; //统计次数
  5. while(n>){
  6. n &= (n-); //每次消掉一个1
  7. k++; //统计消掉1的次数
  8. }
  9. return k;
  10. }
  11. };

求 n! 中0的个数。

思路:计算0的个数,也就是计算10的个数,即计算包含的2和5组成的pair的个数,因为5的个数比2少,所以2和5组成的pair的个数由5的个数决定。

观察15! = 有3个5(来自其中的5, 10, 15), 所以计算15/5=3就可以。

25! = 有6个5(有5个5来自其中的5, 10, 15, 20, 25, 另外还有1个5来自25=(5*5)的另外一个5),

所以要循环计算n/5, 直到商为0。

  1. class Solution {
  2. public:
  3. int trailingZeroes(int n) {
  4. int result = , k = ;
  5. while(n>){
  6. k = n/; //统计 n! 是5的几幂次
  7. result += k;
  8. n = k;
  9. }
  10. return result;
  11. }
  12. };

螺旋矩阵:

  1. class Solution {
  2. public:
  3. vector<int> spiralOrder(vector<vector<int>>& matrix) {
  4. if(matrix.empty() || matrix[].empty()) return {};
  5.  
  6. int m = matrix.size(); //行数
  7. int n = matrix[].size(); //列数
  8.  
  9. vector<int> res;
  10. int up = , down = m-, left = , right = n-;
  11. while(true){
  12. for(int j = left; j<=right;j++)
  13. res.push_back(matrix[up][j]);
  14.  
  15. if(++up > down) break;
  16.  
  17. for(int j = up; j<=down; j++)
  18. res.push_back(matrix[j][right]);
  19.  
  20. if(--right < left) break;
  21.  
  22. for(int j = right; j>= left; j--)
  23. res.push_back(matrix[down][j]);
  24.  
  25. if(--down < up) break;
  26.  
  27. for(int j = down; j >= up; j--)
  28. res.push_back(matrix[j][left]);
  29.  
  30. if(++left>right) break;
  31. }
  32. return res;
  33. }
  34. };

注意下需要设置一个val变量,它的取值是不断递增的。

  1. class Solution {
  2. public:
  3. vector<vector<int>> generateMatrix(int n) {
  4. int left = , right = n-, top = , down = n-, val = ;
  5. vector<vector<int>> res(n, vector<int> (n,)); //初始化res为n个vector<int>的对象,每个又包含n个0
  6. while(true){
  7. for(int j = left; j<=right; j++)
  8. res[top][j] = val++;
  9. if(++top > down) break;
  10.  
  11. for(int j = top; j<=down; j++)
  12. res[j][right] = val++;
  13. if(--right < left) break;
  14.  
  15. for(int j = right; j>=left; j--)
  16. res[down][j] = val++;
  17. if(--down < top) break;
  18.  
  19. for(int j = down; j>=top; j--)
  20. res[j][left] = val++;
  21. if(++left > right) break;
  22.  
  23. }
  24. return res;
  25. }
  26. };

leetcode 191:统计1的个数;5 最长回文串;54,59 蛇形矩阵的更多相关文章

  1. 【leetcode 简单】 第九十六题 最长回文串

    给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设字符串的长度不 ...

  2. [LeetCode] Longest Palindrome 最长回文串

    Given a string which consists of lowercase or uppercase letters, find the length of the longest pali ...

  3. leetcode 每日签到 409. 最长回文串

    题目: 最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: ...

  4. 从0打卡leetcode之day 6--最长回文串

    题目描述 给定一个字符串 s,找到 s中最长的回文子串.你可以假设 s 的最大长度为1000. 示例1 输入: "babad" 输出: "bab" 注意: &q ...

  5. leetcode.字符串.409最长回文串-Java

    1. 具体题目 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串.在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设 ...

  6. [LeetCode] Longest Palindromic Substring 最长回文串

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

  7. LeetCode 409——最长回文串

    1. 题目 2. 解答 我们先来看一看回文子串的规律,如果回文子串的长度为偶数,那么其中所有的每个元素都出现了偶数次:如果回文子串的长度为奇数,那么有一个元素出现了奇数次而其余每个元素都出现了偶数次. ...

  8. LeetCode 5 Longest Palindromic Substring manacher算法,最长回文子序列,string.substr(start,len) 难度:2

    https://leetcode.com/problems/longest-palindromic-substring/ manacher算法相关:http://blog.csdn.net/ywhor ...

  9. leetcode 5 :Longest Palindromic Substring 找出最长回文子串

    题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum l ...

随机推荐

  1. (转)C#中的 Interfaces (For 初学者们)

    http://blog.sina.com.cn/s/blog_574c993d0100d59n.html

  2. python 学习之路开始了

    python 学习之路开始了.....记录点点滴滴....

  3. [GO]字符串的使用

    package main import ( "fmt" "strings" ) func main() { //判断字符串1是否包含字符串2,如果包含则返回tr ...

  4. java修饰符 protect public protected

    1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员(子类是可以访问父类的带protected修饰符的成员的 ...

  5. centOS下JDK1.8的安装

    1.下载JDK1.8 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 有两种格式 ...

  6. 基于RFID恢复信号场

    学习RFID的核心是什么?难处在哪?:https://www.zhihu.com/question/26799106

  7. Linux route命令 显示getnameinfo failed [UNKNOWN]

    Redhat配置IPv6以后,执行route显示getnameinfo failed [UNKNOWN] 修改/etc/hosts,增加主机名后,重启服务器,问题解决

  8. Java 实现 WC.exe

    Github:https://github.com/YJOED/Code/tree/master/WC/src 一.题目:实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他 ...

  9. C++语言运算符的功能、优先级和结合性

    优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括号 (表达式)/函数名(形参表)   . 成员选择(对象) 对象.成员名   -& ...

  10. 下了个蓝屏代码查看工具,就中病毒了。。。什么鬼病毒,竟然还是用的VBS

    扫描所有盘下面的html文件,加入VBS脚本...真是奇葩,多少年前的病毒了... http://files.cnblogs.com/files/guangshan/lpdmcxq.rar 这个是病毒 ...