leetcode 191:统计1的个数;5 最长回文串;54,59 蛇形矩阵
- class Solution {
- public:
- int hammingWeight(uint32_t n) {
- int k=; //统计次数
- while(n>){
- n &= (n-); //每次消掉一个1
- k++; //统计消掉1的次数
- }
- return k;
- }
- };
求 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。
- class Solution {
- public:
- int trailingZeroes(int n) {
- int result = , k = ;
- while(n>){
- k = n/; //统计 n! 是5的几幂次
- result += k;
- n = k;
- }
- return result;
- }
- };
螺旋矩阵:
- class Solution {
- public:
- vector<int> spiralOrder(vector<vector<int>>& matrix) {
- if(matrix.empty() || matrix[].empty()) return {};
- int m = matrix.size(); //行数
- int n = matrix[].size(); //列数
- vector<int> res;
- int up = , down = m-, left = , right = n-;
- while(true){
- for(int j = left; j<=right;j++)
- res.push_back(matrix[up][j]);
- if(++up > down) break;
- for(int j = up; j<=down; j++)
- res.push_back(matrix[j][right]);
- if(--right < left) break;
- for(int j = right; j>= left; j--)
- res.push_back(matrix[down][j]);
- if(--down < up) break;
- for(int j = down; j >= up; j--)
- res.push_back(matrix[j][left]);
- if(++left>right) break;
- }
- return res;
- }
- };
注意下需要设置一个val变量,它的取值是不断递增的。
- class Solution {
- public:
- vector<vector<int>> generateMatrix(int n) {
- int left = , right = n-, top = , down = n-, val = ;
- vector<vector<int>> res(n, vector<int> (n,)); //初始化res为n个vector<int>的对象,每个又包含n个0
- while(true){
- for(int j = left; j<=right; j++)
- res[top][j] = val++;
- if(++top > down) break;
- for(int j = top; j<=down; j++)
- res[j][right] = val++;
- if(--right < left) break;
- for(int j = right; j>=left; j--)
- res[down][j] = val++;
- if(--down < top) break;
- for(int j = down; j>=top; j--)
- res[j][left] = val++;
- if(++left > right) break;
- }
- return res;
- }
- };
leetcode 191:统计1的个数;5 最长回文串;54,59 蛇形矩阵的更多相关文章
- 【leetcode 简单】 第九十六题 最长回文串
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设字符串的长度不 ...
- [LeetCode] Longest Palindrome 最长回文串
Given a string which consists of lowercase or uppercase letters, find the length of the longest pali ...
- leetcode 每日签到 409. 最长回文串
题目: 最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: ...
- 从0打卡leetcode之day 6--最长回文串
题目描述 给定一个字符串 s,找到 s中最长的回文子串.你可以假设 s 的最大长度为1000. 示例1 输入: "babad" 输出: "bab" 注意: &q ...
- leetcode.字符串.409最长回文串-Java
1. 具体题目 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串.在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设 ...
- [LeetCode] Longest Palindromic Substring 最长回文串
Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...
- LeetCode 409——最长回文串
1. 题目 2. 解答 我们先来看一看回文子串的规律,如果回文子串的长度为偶数,那么其中所有的每个元素都出现了偶数次:如果回文子串的长度为奇数,那么有一个元素出现了奇数次而其余每个元素都出现了偶数次. ...
- LeetCode 5 Longest Palindromic Substring manacher算法,最长回文子序列,string.substr(start,len) 难度:2
https://leetcode.com/problems/longest-palindromic-substring/ manacher算法相关:http://blog.csdn.net/ywhor ...
- leetcode 5 :Longest Palindromic Substring 找出最长回文子串
题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum l ...
随机推荐
- (转)C#中的 Interfaces (For 初学者们)
http://blog.sina.com.cn/s/blog_574c993d0100d59n.html
- python 学习之路开始了
python 学习之路开始了.....记录点点滴滴....
- [GO]字符串的使用
package main import ( "fmt" "strings" ) func main() { //判断字符串1是否包含字符串2,如果包含则返回tr ...
- java修饰符 protect public protected
1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员(子类是可以访问父类的带protected修饰符的成员的 ...
- centOS下JDK1.8的安装
1.下载JDK1.8 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 有两种格式 ...
- 基于RFID恢复信号场
学习RFID的核心是什么?难处在哪?:https://www.zhihu.com/question/26799106
- Linux route命令 显示getnameinfo failed [UNKNOWN]
Redhat配置IPv6以后,执行route显示getnameinfo failed [UNKNOWN] 修改/etc/hosts,增加主机名后,重启服务器,问题解决
- Java 实现 WC.exe
Github:https://github.com/YJOED/Code/tree/master/WC/src 一.题目:实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他 ...
- C++语言运算符的功能、优先级和结合性
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -& ...
- 下了个蓝屏代码查看工具,就中病毒了。。。什么鬼病毒,竟然还是用的VBS
扫描所有盘下面的html文件,加入VBS脚本...真是奇葩,多少年前的病毒了... http://files.cnblogs.com/files/guangshan/lpdmcxq.rar 这个是病毒 ...