自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(204)
  • 收藏
  • 关注

原创 auto和decltype

autoauto:编译器通过初始值推断变量类型–auto定义的变量必须有初始值//auto在同一语句中可以声明多个对象,但必须为同一类型auto i = 0, *p = &i // 正确,均为intauto sz = 0, tz = 3.1 // 错误//auto使用引用作为初始值时,使用**引用对象的类型**作为auto类型int &a = i;auto x = ...

2018-12-22 21:41:48 409

原创 顶层底层const

C++随手记顶层底层const概念实例其他顶层底层const概念以指针为例顶层const (top level const) 指针本身是常量底层const (low level const) 指针所指对象是常量实例int i = 0;int *const p1 = &i; //顶层const,p1不可以改变,p1指向的对象可以改变const int ci = 0; //底...

2018-12-22 18:32:03 197

原创 [LeetCode]669. Trim a Binary Search Tree

[LeetCode]669. Trim a Binary Search Tree题目描述思路递归 当前节点值未在规定范围内时,递归更新当前节点值到范围后,之后递归更新当前节点的左右子树代码#includeusing namespace std;struct TreeNode { int val; TreeNode* left; Tr

2018-01-11 12:19:56 363

原创 [LeetCode]746. Min Cost Climbing Stairs

[LeetCode]746. Min Cost Climbing Stairs题目描述思路不能存在连续两个不选择的数,所以每次更新的公式为 min(dp[i - 1] + cost[i], dp[i - 2], cost[i - 1]) 考虑选择当前位置,或者选择前一位置的最优结果代码#include#include#includeusing namespa

2018-01-11 11:26:31 350

原创 [LeetCode]264. Ugly Number II

[LeetCode]264. Ugly Number II题目描述思路动态规划,题目313的简单版 题目313看这里 [LeetCode]313. Super Ugly Number代码#include<iostream>#include<vector>#include<algorithm>using namespace std;class Solution {public: i

2017-12-18 11:27:40 300

原创 [LeetCode]313. Super Ugly Number

[LeetCode]313. Super Ugly Number题目描述思路动态规划 保持结果序列递增,需要确保每次放入结果序列的数是当前乘积最小,当前的乘积是由产生序列的数和素数数组里的数乘积得到的,因此需要一个状态数组来保存对于素数数组里的每个数,乘到了数组里的第几个数,最终生成序列代码#include <iostream>#include <vector>#include <algori

2017-12-18 10:53:56 433

原创 [LeetCode]728. Self Dividing Numbers

[LeetCode]728. Self Dividing Numbers题目描述思路水题,遍历,每一位计算即可代码#include <iostream>#include <vector>using namespace std;class Solution {public: bool check(int num) { int temp = num, dig = 0;

2017-12-15 15:50:40 331

原创 [LeetCode]547. Friend Circles

[LeetCode]547. Friend Circles题目描述思路dfs 对每个人未访问过的人,确定他最大的朋友圈范围,同时标记已经访问过的人,最后把所有的朋友圈结果加和即为结果代码#include <iostream>#include <vector>#include <algorithm>using namespace std;class Solution {public:

2017-12-12 13:08:33 400

原创 [LeetCode]657. Judge Route Circle

[LeetCode]657. Judge Route Circle题目描述思路水题 一次遍历代码#include <iostream>#include <string>using namespace std;class Solution {public: bool judgeCircle(string moves) { int row = 0,

2017-12-11 18:46:04 292

原创 [LeetCode]645. Set Mismatch

[LeetCode]645. Set Mismatch题目描述思路简单粗暴的方法,用哈希表统计即可优化 1-n之间的数,只有一个重复,那么可以不消耗额外空间,在原数组做标记,1-n的数对应访问数组下标,访问过的数组元素就置负,当访问到的元素已经是负数时,说明当前当做下标的数是第二次出现了 再次遍历数组,经过一轮标记后元素值仍为正数的数的下标对应的数,就是缺失的数了代码#include <iost

2017-09-20 00:57:46 432

原创 [LeetCode]633. Sum of Square Numbers

[LeetCode]633. Sum of Square Numbers题目描述思路有点类似tow sum 从两边找,low的边界是0,high的边界是输入num的平方根取证代码#include <iostream>#include <vector>#include <algorithm>using namespace std;class Solution {public: bool

2017-09-20 00:39:13 454

原创 [LeetCode]654. Maximum Binary Tree

[LeetCode]654. Maximum Binary Tree题目描述思路参考了答案写法,用了栈 若栈不为空,若栈顶元素小于当前值,贼一直更新当前值的左子节点,直至栈空或者栈顶元素不小于当前值 之后,若栈不为空,栈顶元素右子节点为当前节点 当前节点入栈 知道遍历数组结束代码#include <iostream>#include <vector>using namespace std;

2017-08-18 00:38:35 408

原创 [LeetCode]553. Optimal Division

[LeetCode]553. Optimal Division题目描述思路medium里的一道水题,遍历一次就好 因为要得到除法运算的最大值 所以分子尽可能大,分母尽可能小 而且数组是降序排列的,所以第一个元素做分子,后面的连除做分母就是结果了代码#include <iostream>#include <string>#include <vector>using namespace std

2017-08-17 22:29:43 367

转载 linux查看/修改文件编码

查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc 文件中添加以下内容:set encoding=utf-8 fileencodings=ucs-bom,utf-8,c

2017-08-17 17:20:20 446

原创 linux awk 命令笔记

1 调用awk方式 1.命令行方式 awk [-F field-separator] ‘commands’ input-file(s) 其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。 在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

2017-08-16 20:24:57 568

原创 [LeetCode]540. Single Element in a Sorted Array

[LeetCode]540. Single Element in a Sorted Array题目描述思路开始的想法,直接用位操作,异或即可得到结果,但是需要o(n)时间 题目要求是o(logn),并且给出数组是有序的,因此可以使用二分的方法来做对于整个数组,取mid,如果mid为偶数,判断mid值是否和mid+1相等,如果相等,则说明只出现一次的数在右边,需要向右边找,原因,mid为偶数时,分割

2017-08-03 22:55:04 570 1

原创 [LeetCode]647. Palindromic Substrings

[LeetCode]647. Palindromic Substrings题目描述思路简单暴力遍历减少比较次数,将外层循环遍历的每个元素当作中间值,左右分别伸展,考虑奇数和偶数长度的字符串情况代码#include <iostream>#include <string>using namespace std;class Solution {public: /* bool is

2017-08-03 19:39:31 407

原创 [LeetCode]515. Find Largest Value in Each Tree Row

[LeetCode]515. Find Largest Value in Each Tree Row题目描述思路递归,深度优先 使用数组存储对应层的最大值代码#include <iostream>#include <vector>#include <algorithm>using namespace std;struct TreeNode { int val; TreeNode

2017-07-30 00:24:48 335

原创 [LeetCode]526. Beautiful Arrangement

[LeetCode]526. Beautiful Arrangement题目描述思路递归 对于长度为n的数组,初始化为1,2,3,…,n的形式的数组 扫描数组,当前值满足条件时,与末位交换 然后判断n-1长度的数组的完美个数 直到n=1时,完美数组是1个,递归终止条件。遵循的规律,每次发生交换后,数组必然为完美数组,原因?代码#include <iostream>#include <vec

2017-07-27 00:04:56 361

原创 [LeetCode]28. Implement strStr()

[LeetCode]28. Implement strStr()题目描述思路kmp算法实现 参考: http://blog.csdn.net/v_july_v/article/details/7041827 http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html代码#inc

2017-07-25 00:26:45 302

原创 [LeetCode]406. Queue Reconstruction by Height

[LeetCode]406. Queue Reconstruction by Height题目描述思路参考了答案解法 people: [[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]] 排序后: [[7,0], [7,1], [6,1], [5,0], [5,2], [4,4]] 然后从数组people第一个元素开始,放入到数组result中,放入

2017-07-21 00:01:13 392

原创 [LeetCode]513. Find Bottom Left Tree Value

[LeetCode]513. Find Bottom Left Tree Value题目描述思路递归,DFS,到达层数大于最大层时,更新res和最大层的数值代码#include <iostream>#include <vector>using namespace std;struct TreeNode { int val; TreeNode* left; TreeNode

2017-07-20 22:06:53 353

原创 [LeetCode]628. Maximum Product of Three Numbers

[LeetCode]628. Maximum Product of Three Numbers题目描述思路简单的做法,扫描一次即可,维护两个最小值和三个最大值看到这个题目,想起一道面试题,一个无法载入内存的数组,从中选n个最大的数 解法,建立一个小根堆,限定元素个数为n,每次插入一个新元素后弹出堆顶元素,扫描一次,堆中的n个元素即为n个最大的数。这道题思路可以借鉴这种方式,顺便回顾一下调整堆的方法

2017-07-20 00:56:21 461

原创 [LeetCode]599. Minimum Index Sum of Two Lists

[LeetCode]599. Minimum Index Sum of Two Lists题目描述思路哈希,先存list1的结果 然后扫list2,有与list1相同的存入哈希,同时保留最小和 遍历哈希,值为最小和的string存入数组返回代码#include <iostream>#include <vector>#include <string>#include <unordered_m

2017-07-19 00:47:30 419

原创 [LeetCode]598. Range Addition II

[LeetCode]598. Range Addition II题目描述思路筛选重复加最多的区域 即ops数组中的最小值,得到行列相乘即可代码#include <iostream>#include <vector>#include <algorithm>using namespace std;class Solution {public: int maxCount(int m, in

2017-07-19 00:02:24 531

原创 [LeetCode]606. Construct String from Binary Tree

[LeetCode]606. Construct String from Binary Tree题目描述思路二叉树的先序遍历扩展,注意处理子节点为空的三种情况代码#include <iostream>#include <string>using namespace std;struct TreeNode { int val; TreeNode* left; TreeNode

2017-07-18 00:07:14 274

原创 [LeetCode]538. Convert BST to Greater Tree

[LeetCode]538. Convert BST to Greater Tree题目描述思路实际上是二叉树的中序遍历,顺序为 右-中-左代码#include <iostream>using namespace std;struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x

2017-07-17 23:45:10 334

原创 [LeetCode]643. Maximum Average Subarray I

[LeetCode]643. Maximum Average Subarray I题目描述思路滑窗统计k个数的和,同时保留最大和,结果返回最大和/k代码#include <iostream>#include <vector>#include <algorithm>using namespace std;class Solution {public: double findMaxAver

2017-07-17 23:25:14 758

原创 [LeetCode]637. Average of Levels in Binary Tree

[LeetCode]637. Average of Levels in Binary Tree题目描述思路实际上是树的层次遍历 递归写法参数中加入层数即可代码#include <iostream>#include <vector>using namespace std;struct TreeNode { int val; TreeNode* left; TreeNode*

2017-07-17 00:52:23 740

原创 [LeetCode]617. Merge Two Binary Trees

[LeetCode]617. Merge Two Binary Trees题目描述思路递归 t1为空 返回 t2 t2为空 返回t1 同时为空返回null 都存在则计算和返回代码#include <iostream>struct TreeNode { int val;; TreeNode* left; TreeNode* right; TreeNode(int

2017-07-17 00:28:22 315

原创 《算法概论》习题8.3证明

《算法概论》习题8.3证明STINGY SAT问题:给定一组子句(变量的析取)和整数k,求一个至多有k个变量为真的赋值安排(在这样的赋值安排存在的条件下)。求证:STINGY SAT问题是NP-完全问题。 证明:首先,易知STINGY SAT的解是可在多项式时间内验证的,因此其属于NP问题。另外,很容易可以将SAT问题归约到STINGY SAT问题(将k设为所有变量的总个数即可),于是可知STIN

2017-07-08 21:01:23 398

原创 [LeetCode]624. Maximum Distance in Arrays

[LeetCode]624. Maximum Distance in Arrays题目描述思路保存当前最大最小和第二大第二小的值 如果最大最小值在同一个数组里就返回max(最大 - 第二小, 第二大 - 最小)更新当前最大最小和第二大第二小的过程当更新最大最小值时,先将目前最大最小值保存到第二大第二小, 再更新当无法更新最大最小值时,检查第二大第二小能否符合更新条件,更新条件除去更大更小之外也

2017-06-18 21:00:07 1080

原创 [LeetCode]204. Count Primes

[LeetCode]204. Count Primes题目描述思路类似动态规划,每次计算当前素数时,将不可能是素数的结果标记,之后遍历碰到这些结果直接跳过代码#include <iostream>#include <vector>using namespace std;class Solution {public: int countPrimes(int n) { if

2017-06-17 22:54:28 284

原创 [LeetCode]537. Complex Number Multiplication

[LeetCode]537. Complex Number Multiplication题目描述思路自己的想法,构建complex的struct,之后处理每个字符串答案做法,stringstream代码#include <iostream>#include <string>#include <vector>#include <sstream>using namespace std;vec

2017-06-17 21:29:41 354

原创 [LeetCode]168. Excel Sheet Column Title

[LeetCode]168. Excel Sheet Column Title题目描述思路类似于进制转换代码#include <iostream>#include <string>using namespace std;class Solution {public: string convertToTitle(int n) { string convert = "ABCD

2017-06-11 21:46:57 296

原创 [LeetCode]125. Valid Palindrome

[LeetCode]125. Valid Palindrome题目描述思路1.筛选去掉无用字符 2.判断当前字符串是否回文串代码#include <iostream>#include <string>using namespace std;class Solution {public: bool isPalindrome(string s) { /* i

2017-06-07 21:16:24 279

原创 [LeetCode]69. Sqrt(x)

[LeetCode]69. Sqrt(x)题目描述思路由于题目要求返回的是整数,简单实现的话可以使用二分 注意实现过程中的一些越界问题代码#include <iostream>using namespace std;class Solution {public: int mySqrt(int x) { if (x == 1) return 1;

2017-06-07 19:22:37 343

原创 [LeetCode]414. Third Maximum Number

[LeetCode]414. Third Maximum Number题目描述思路map可解,开始的思路是o(n)空间 参考答案,可以用o(1)空间的解法代码#include <iostream>#include <map>#include <set>#include <vector>using namespace std;class Solution {public: int t

2017-06-07 17:30:17 292

原创 [LeetCode]532. K-diff Pairs in an Array

[LeetCode]532. K-diff Pairs in an Array题目描述思路哈希,计数 如果k为负,直接返回0 如果k为0,即为求重复元素代码#include <iostream>#include <unordered_map>#include <vector>#include <algorithm>using namespace std;class Solution {p

2017-06-05 21:41:03 411

原创 [LeetCode]155. Min Stack

[LeetCode]155. Min Stack题目描述思路两个vector 一个vector存储栈 另一个vector存储到目前为止最小值的下标代码#include <iostream>#include <vector>#include <algorithm>using namespace std;class MinStack {public: /** initialize yo

2017-06-05 21:09:11 374

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除