自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yinqiaohua的专栏

不积跬步无以至千里

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

原创 Leetcode_Partition List

题意为将小于特定值x的所有节点均放在不小于x的节点的前面,而且,不能改变原来节点的前后位置。思路:设置两个链表,一个用于存放值小于x的节点,一个用于存放值不小于x的节点。class Solution {public: ListNode *partition(ListNode *head, int x) { if(head==nullptr) return head;

2015-02-10 16:11:49 635

原创 二叉树的构造方法

做Leetcode上面的题目时,遇到二叉树的问题,想要用一个二叉树进行验证,每次构造二叉树都很麻烦,特此写一个构造函数。1.用数组构造二叉树void treeNodeConstructor(TreeNode *&root, int data[],int n,int index){//此处root一定要加&,为对指针的引用 /* data为存储节点数据的数组,n为data数组的长度,in

2015-02-10 13:50:13 4620

原创 Leetcode_Sum Root to Leaf Numbers

递归实现,深度遍历,记录每一条路径。class Solution {public: int sumNumbers(TreeNode *root) { if(root==nullptr) return 0; vector> result; vector path; traverse(root,result,path); int n=result.size();

2015-02-10 13:04:29 629

转载 Leetcode_Gas Station

本文转自http://www.cnblogs.com/felixfang/p/3814463.html最直观的思路最直观的解法自然是O(n2) 时间复杂度的挨个尝试。这里不做讨论。我的代码:(超时)class Solution1 {public: int canCompleteCircuit(vector &gas, vector &cost) { int N=g

2015-02-09 21:52:18 361

原创 Leetcode_Add Binary

class Solution {public: string addBinary(string a, string b) { string s; int lenA=a.size(); int lenB=b.size(); if(lenA==0) return b; if(lenB==0) return a; if(lenA>lenB)

2015-02-09 20:08:45 394

原创 Leetcode_Implement strStr()

题意为判断一个字符串是否出现在另外一个字符串中,存在则返回其第一次出现的位置,否则返回-1.class Solution {public: int strStr(char *haystack, char *needle) { int Len1=strlen(haystack); int Len2=strlen(needle); if(Len1<Len2) re

2015-02-09 15:53:22 436

原创 Leetcode_Binary Tree Level Order Traversal

广度遍历二叉树,且要分别记录每一层的数据,方法有二。1.迭代法设置两个队列,其中一个队列用于存放上一层的节点,另一个队列用于存放下一层的节点。轮番使用。class Solution {public: vector > levelOrder(TreeNode *root) { queue q1,q2; vector> result; if(!root) return

2015-02-09 15:03:04 522

原创 Leetcode_Minimum Depth of Binary Tree

题意为得出二叉树的最小深度,但深度是定义为从根节点到叶子节点的最少节点数。容易出错的地方:为空节点时,直接返回0。这是不对的,要判断其是否有兄弟节点,没有兄弟节点的时候才能返回0,即这个节点的父节点是一个叶子节点。错解1:class Solution {public: int minDepth(TreeNode *root) { if(root==nullptr)

2015-02-09 10:37:41 410

原创 Leetcode_Path Sum II

题意需要记录所有可能的路径,可以设置一个变量path用于存储每次产生的路径,设置一个变量result存储所有符合条件的路劲。用递归可以实现,主要注意的问题是:对path路径的pop操作。方式一:每一次深度遍历之后,得到一条路径,符合条件就压入result中,然后要判断下一天路径。下一条路径是将前一条路径中的最后一个左节点弹出,压入右节点。下面这种方式,就是在寻得叶子节点之后,继续执行叶子节

2015-02-09 09:53:38 552

原创 Leetcode_Path Sum

递归实现即可class Solution {public: bool hasPathSum(TreeNode *root, int sum) { if(!root) return false; if(root->left ==nullptr&&root->right==nullptr&&root->val==sum) return true; return has

2015-02-08 21:40:43 471

原创 Leetcode_Factorial Trailing Zeroes(耗时问题)

出现0的情况是,出现5和2的倍数。[n/k]代表1~n中能被k整除的个数,而能被2整除的个数多余能被5整除的个数,故只要知道能被5整除的个数即可。那么怎样计算n!的质因子中所有5的个数呢?一个简单的方法是计算floor(n/5)。例如,7!有一个5,10!有两个5。除此之外,还有一件事情要考虑。诸如25,125之类的数字有不止一个5。例如,如果我们考虑28!,我们得到一个额外的5,并且0的总数

2015-02-08 20:41:43 405

原创 Leetcode_Valid Palindrome

判断字符串是否为对称的,主要是不考虑非字母非数字的字符。class Solution {public: bool isPalindrome(string s) { if(s.size()==0) return true; int len=s.size(); if(len==1) { if(isalnum(s[0])) return true; els

2015-02-08 19:50:30 358

原创 Leetcode_Longest Common Prefix

题意为找到所有字符串的最长的共同前缀。思路:1.先遍历一遍,得出最短字符串的长度2.对每一个字符串均与第一个字符串比较,出现不同,则得出最长公共前缀到此结束class Solution {public: string longestCommonPrefix(vector &strs) { int len=strs.size(); int min=INT_MA

2015-02-08 17:25:05 328

原创 Leetcode_Palindrome Number

这个问题就是判断整数是否为回文。思路1:利用一个字符串,将int转换为字符串,但这样会需要使用额外的内存思路2:经整数翻转,然后与原来的整数比较是否相等,但这样可能翻转后的整数会溢出思路3:不断取整数的最高位和最低位(10进制下)进行比较,相等则取次高位和次低位进行比较class Solution {public: bool isPalindrome(int x) {

2015-02-08 16:23:15 502

原创 Leetcode_String to Integer (atoi)

主要注意分析几种特殊的输入:1 不规则的输入,但是有效:"-3924x8fc","+432"2 无效格式,"++c","++1"3 数据溢出其中数据溢出的判断:To deal with overflow, inspect the current number before multiplication. If the current number is greater than

2015-02-08 15:20:20 572

原创 Leetcode_Min Stack

设置两个栈,一个vbase用于存放原来的数据,一个minbase用于存放最小数据。将第一个进栈的数据同时压入两个栈中。在之后压入数据时,对于vbase,直接将数据压入即可;对于minbase,则需要比较待压入的数据与vbase顶端数据的大小,小于等于vbase顶端的数据,就将这个数据也压入minbase中。如果后来得到的值是大于当前最小栈顶的值的,那么接下来pop都会先出去,而最小栈顶的值会一直在

2015-02-08 12:36:30 577

原创 Leetcode_ZigZag Conversion

ZigZag Conversion(图片来自http://www.cnblogs.com/sanghai/p/3632528.html)向下循环:nRows斜角线循环:nRows-2(减去首尾两个端点)定义一列和一斜对角线的循环长度为dLen=nRows+nRows-2;1 第一行和最后一行,均是由第一列加上dLen的倍数,即可2 其余行,每计算出下一列的下标j之后

2015-02-08 10:08:37 519

原创 stringstream中的.clear()和.str()

在C++中可以使用stringstream来很方便的进行类型转换,字符串串接,不过注意重复使用同一个stringstream对象时要先继续清空,而清空很容易想到是clear方法,而在stringstream中这个方法实际上是清空stringstream的状态(比如出错等),真正清空内容需要使用.str(“”)方法。用.str(“”)方法可以清楚缓存,但是,需要重复使用同一个stringstre

2015-02-07 22:43:31 778

转载 stringstream的重要用法(数据类型转换)

本文转自http://blog.csdn.net/joeblackzqq/article/details/7032703C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。  istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C++

2015-02-07 22:10:48 914

原创 Leetcode_Compare Version Numbers

#include #include #include using namespace std;class Solution {public: int compareVersion(string version1, string version2) { vector v1; vector v2; int p=0; /*方法一:OK*/ /*for(int i=0

2015-02-05 22:23:06 391

原创 Leetcode_Excel Sheet Column Title

#include #include using namespace std;class Solution {public: string convertToTitle(int n) { string index="ZABCDEFGHIJKLMNOPQRSTUVWXYZ"; string s; if(n<=0) return s; while(n>26) {

2015-02-05 20:43:45 361

原创 Leetcode_Reverse Integer(考虑了溢出情况)

Reverse Integer Total Accepted: 52886 Total Submissions: 174213 My Submissions Question SolutionReverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321c

2015-02-03 21:59:32 346

转载 【单链表】环的入口点

本文文字部分转自http://blog.sina.com.cn/s/blog_6a0e04380101a9o2.html求解单链表环入口点的步骤:1:使用“指针追赶”方法找到相遇点(网上资料很多,此处略)。2:指针p1从链表头、p2从相遇点,同时出发,一次移动一个节点,再次的相遇点便是环的入口点。理解了好久,终于证明了为什么步骤2那样就能找到入口点。证明导向:p1从表头走,

2015-02-03 19:11:30 634

原创 printf和cout右向左求值

#include using namespace std;int main(){ int i=2; int b=2; int *ptr1=&i; int *ptr2=&b; cout<<*ptr1<<" "<<*ptr1++<<endl; cout<<*ptr2<<" "<<(*ptr2)++<<endl; return 0;}(*p)++等价于*p=*p+1也就是

2015-02-02 16:42:05 619

空空如也

空空如也

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

TA关注的人

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