自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NiaNiaJR的专栏

记录走下的每个脚步,成为coder的炼狱! ----> http://www.liangjiarui.com (个人博客)

  • 博客(169)
  • 收藏
  • 关注

原创 104 Maximum Depth of Binary Tree

方法一:深度优先遍历class Solution {public: int maxDepth(TreeNode *root) { if(root==NULL) return 0; if(root->left==NULL&&root->right==NULL) return 1; int mx

2015-04-09 21:12:20 606

原创 107 Binary Tree Level Order Traversal II

方法一:普通宽度优先class Solution {public: vector > levelOrderBottom(TreeNode *root) { vector >ans; if(root==NULL) return ans; queue q1; queue q2; b

2015-04-09 20:59:33 589

原创 198 House Robber

方法一:动态规划,简单dpclass Solution {public: int rob(vector &num) { if(num.empty())return 0; int sz=num.size(); int dp[sz+5][4]; memset(dp,0,sizeof(dp)); dp[0][1]=

2015-04-09 20:18:35 594

原创 110 Balanced Binary Tree

方法一:(笨办法,把每一个结点的两个子树深度作差,判断是否小于1,进行深度优先遍历判断,貌似复杂度比较高)class Solution {public: int getDepth(TreeNode *root){ if(root==NULL) return 0; if(root->left==NULL&&root->right=

2015-03-17 17:34:27 674

原创 111 Minimum Depth of Binary Tree

方法一:(深度优先搜索,记得单个结点深度为1,注意边界情况。)class Solution {public: int minDepth(TreeNode *root) { if(root==0) return 0; if(root->left==NULL&&root->right==NULL) retur

2015-03-17 12:19:24 567

原创 112 Path Sum

方法一:(深度优先搜索遍历,注意边界条件处理,以及初始根为空的情况)class Solution {public: bool hasPathSum(TreeNode *root, int sum) { bool f=false; if(root==NULL) return false; if(root->left=

2015-03-17 11:49:26 481

原创 118 Pascal's Triangle

class Solution {public: vector > generate(int numRows) { vectorvec; vector >ans; if(numRows==0) return ans; vec.push_back(1); ans.push_back(vec

2015-03-16 20:34:13 413

原创 119 Pascal's Triangle II

方法一:(模拟杨辉三角的特点,用一个数组进行不断更新,也就是上一层两数的和为下一层的数,循环k次,时间复杂度是O(n^2)的,空间复杂度是O(k)的class Solution {public: vector getRow(int rowIndex) { vectorvec; vec.push_back(1); for(int i=1; i

2015-03-16 17:32:39 516

原创 125 Valid Palindrome

方法一:(两个指针,对称比较,过滤掉非字幕数字的字符进行判断,时间复杂度O(n))class Solution {public: bool isPalindrome(string s) { for(int i=0, j=int(s.length())-1; i<=j;){ if(!isalpha(s[i])&&!isdigit(s[i]))

2015-03-16 16:16:05 458

原创 155 Min Stack

方法一:(维护一个最小值的栈,每次入栈与进栈都要对其进行维护)class MinStack {public: MinStack() { sz=0; } void push(int x) { if(sz==0){ m=x; mins.push(x); } els

2015-03-16 13:03:40 568

原创 160 Intersection of Two Linked Lists

方法一:(先遍历两个序列,找到长度,然后让长的那个序列先移动多处的结点数,剩下的就是找到共同的点了,时间复杂度应该是O(n+m)的,空间复杂度为常数)class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { int len1=0, len2=0;

2015-03-16 12:09:36 488

原创 165 Compare Version Numbers

方法一:(每一个”."的子段比较所代表的数字,其中去除前导零)class Solution {public: int compareVersion(string version1, string version2) { int i=0,j=0; while(true){ int n1=0, n2=0; whi

2015-03-16 11:07:01 767

原创 168 Excel Sheet Column Title

方法一:(模拟数学中求二进制的2除法)class Solution {public: string convertToTitle(int n) { char tabs[27]; string ans=""; tabs[1]='A'; for(int i=2; i<=26; i++) tabs[i]=c

2015-03-16 09:58:42 594

原创 169 Majority Element

方法一(排序+查找,复杂度O(nlogn)class Solution {public: int majorityElement(vector &num) { sort(num.begin(), num.end()); int ans=0, ans_t=num.size()/2-1, pre=num[0], t=0; for(int i=

2015-03-15 20:34:37 472

原创 171 Excel Sheet Column Number

class Solution {public: int titleToNumber(string s) { int p=1,sum=0; for(int i=int(s.length())-1; i>=0; i--){ sum=sum+(s[i]-'A'+1)*p; p*=26; }

2015-03-15 19:40:45 472

原创 172 Factorial Trailing Zeroes

//质数因子的使用class Solution {public: int trailingZeroes(int n) { int zeros=0; while(n>0){ zeros=zeros+n/5; n=n/5; } return zeros; }};

2015-03-15 18:33:45 474

原创 189 Rotate Array

方法一:class Solution {public: void rotate(int nums[], int n, int k) { int tmp[n]; for(int i=0; i<n; i++){ tmp[i]=nums[i]; } for(int i=0; i<n; i++){

2015-03-14 23:20:12 434

原创 190 Reverse Bits

#include using namespacestd;int main(int argc,const char * argv[]) {    // insert code here...    uint32_t num, sum=0;    cin>>num;    for(int i=0; i31; i++){        if( (num

2015-03-13 12:49:22 607

原创 191 Number of 1 Bits

#include using namespace std;int main(int argc, const char * argv[]) { // insert code here... uint32_t num, sum=0; cin>>num; for(int i=0; i<=31; i++){ if( (num&(1<<i)) !=0

2015-03-13 12:42:23 412

原创 关于在ubantu输入类似node ,brunch, less等等命令失效

估计是node安装有问题,今天踩坑被mentor发现了,要卸载掉node安装nodejs,问题好像是ubantu本来就自带有个与node同名的文件造成了冲突。

2014-07-19 02:42:10 1000

原创 关于@media无法识别问题

加上就能解决问题了,好像跟设备的系统有关,否则无法识别

2014-07-19 02:36:56 1277

转载 javascript字面量

javascript字面量在JavaScript里面,字面量包括:字符串字面量(string literal )、数组字面量(array literal)和对象字面量(object literal),另外还有函数字面量(function literal)。如果以前没有接触过字面量这个词,一时间真的难以理解,定义都是写的很玄乎的,读完可能会完全不知所云,于是上网百度+google了一

2014-07-04 20:39:20 642

原创 快速产生后缀字符串的代码

在编程珠玑上看见的,感觉比较巧妙,写下来分享一下。

2014-07-03 15:03:32 588

原创 《编程珠玑》--关于编程过程中几个重要阶段的摘录

要养成良好的编程习惯,勤于思考,yiban

2014-06-28 12:03:23 627

原创 《编程珠玑》--一段设计取巧的随机数选取代码

代码如下:#include#include#include#includeusing namespace std;int main(){ int n,m,remaining; srand(time(NULL)); cout<<"请输入选择的范围以及需要从中挑选多少个数:"<<endl; cin>>n>>m; remaining = n; for

2014-06-28 11:19:01 670

原创 《编程珠玑》---信函格式发生器

这词到是有点新鲜,以前都没听过,百度了以后才发现原来是这样

2014-06-22 14:24:20 1203

原创 《编程珠玑》---编写正确的二分搜索程序

#includeusing namespace std;int s[12] = { 1,2,2,3,3,4,4,4,5,5,11,12 };int bin_search(const int x, int l, int r){    int mid;    while(l        mid = l+(r-l)/2;        if(s[mi

2014-06-22 14:21:30 725

原创 《编程珠玑》之矩阵转置

第二章的习题7描述,要转置一个存储在

2014-06-20 21:22:45 867

原创 《编程珠玑》之变位词查找

一般方法就是xian

2014-05-29 01:55:17 878

原创 《编程珠玑》---找到缺失的整数(位图+二分)

问题描述:从40亿个随机排列的32位整数中找到不存在文件中的整数;根据题目的解析,这里我们缩小范围来举例,从8个随机排列的3位整数中找到不存在文件中的整数,假如我们放进的是(000, 001, 010, 011, 100, 111)缺少(101,110);算法第一趟:(把起始位为0的整数读入到一个文件,把起始位为1的整数读入到另一个文件)。文件1: 000, 001, 010, 011

2014-05-28 23:16:31 1006 1

原创 读《编程珠玑》之初始化牺牲空间换时间

遗留昨天的第一章的习题9,关于用牺牲空间的办法来换取时间的初始化办法;作者

2014-05-27 01:11:48 1066

原创 静下心来好好看书,好好学习。

按学长给的建议看《编程珠玑》,其实以前也早ting

2014-05-26 01:53:09 657

原创 《编程珠玑》之随机取k个数

4.取0-n范围的k个随机数,保证不能重复(例如n=100, k=9)int randint(int l,int u){    int temp;    srand(time(NULL));    temp = floor(1+(1.0*rand()/RAND_MAX)*(u-l+1));    return temp;}int main(){    int s

2014-05-26 01:48:25 725

原创 <<编程珠玑>>笔记之使用位逻辑运算来实现位向量

位向量:用位来存储一个数,例如N=10000000个数,每一位代表一个数定义一个int类型的数组int a[N],如果a[9]=1,则代表文件中存在一个值为9,不过由于这里我们定义的是int,一个int是4字节,也就是32位,有效利用这个32位的可以缩减实际所开数组大小的'N'值,这里实际上也就只用开到int [n>>5]; 这样每一个数组的值,例如:a[0]代表了0-31; a[1]代表

2014-05-26 01:46:42 656

原创 usaco castle

/*ID: ljracm1LANG: C++PROB: castle*/#include#include#include#include#define Tusing namespace std;int M,N;int maze[55][55];int wall[55][55];int vis[55][55];int area[255];int color=1,s

2014-05-21 00:50:12 605

原创 usaco frac1

/*ID: ljracm1LANG: C++PROB: frac1*/#include#include#define Tusing namespace std;struct Item{ double a; double b;}p[40000];bool check(int a,int b){ for(int i=2; i<=min(a,b); i

2014-05-21 00:48:45 608

原创 usaco sprime

/*ID: ljracm1LANG: C++PROB: sprime*/#include#include#include#define Tusing namespace std;int n;int s[10];int judge(int x){ for(int i=2; i<=sqrt(x); i++) if(x%i==0)return fals

2014-05-15 00:37:29 584

原创 usaco checker

/*ID: ljracm1LANG: C++PROB: checker*/#include#define Tint n,t;int col[15];int dig1[40],dig2[40];int row[15];void dfs(int d){ if(d>n){ t++; if(t<=3){ for(int

2014-05-15 00:36:37 609

原创 usaco numtri

/*ID: ljracm1LANG: C++PROB: numtri*/#include#include#include#define Tusing namespace std;int R;int s[1004][1004];int dp[1004][1004];int main(){ #ifdef T freopen("numtri.in","

2014-05-14 00:09:49 533

原创 usaco pprime

/*ID: ljracm1LANG: C++PROB: pprime*/#include#include#include#include#define Tusing namespace std;bool judge(int x){ for(int i=2; i<=sqrt(x); i++) if(x%i==0)return false; r

2014-05-14 00:08:30 551

空空如也

空空如也

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

TA关注的人

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