自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《高质量 C++/C 编程指南》读书笔记(1)

简介:此书主要介绍了如何编写高质量的代码,对实现程序功能没有介绍,主要说了编写代码的一些注意事项,如程序风格,错误处理,语言特性,编程规范等方面。第一章 文件结构最基本的就是要有两个文件.h和.cpp(此处以c++为例,c语言为.c文件)。以前写代码的时候总是只有一个.c或者一个.cpp,没有对应的.h文件,当程序变大的时候,发现这是一个非常不好的习惯。引用书中对使用头文件原因的说明:

2013-08-24 21:14:04 572

原创 essential c++阅读笔记(1)

学习c++的同学很多老师和同学都推荐《c++ primer》这本书,但是这本书有1千多页,知识点特别多,而且不能使初学者很快的上手,在这里我比较推荐《essential c++》这本书。读者使用c++有1年多,这次阅读,收获颇多,在此做笔记重新温习一下。          1,文件的读写#include #include #include using namespace std;

2013-08-08 10:46:51 563

原创 leetcode Longest Consecutive Sequence

题意:给定一个整数数组,找出数组中最长的连续整数。时间要求是O(n)。思路:一看时间复杂度要求就想到了hash,第一次先进行初始化操作,时间复杂度为O(n),然后遍历查找,时间复杂度以为O(n),在c++中利用了STL模板unordered_sort,类似于hash。喜欢的同学可以自己查找一下。代码实现:class Solution {public: int longestCon

2013-07-10 13:38:36 361

原创 leetcode Sum Root to Leaf Numbers

题意:给定一个二叉树,从跟节点到每一个叶子节点产生一个整数,将产生的所有整数相加,返回最终的和。解题思路:这道题还是利用dfs算法解决,通过递归遍历得到最终的结果。代码实现:/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNo

2013-07-09 20:42:02 404

原创 leetcode Surrounded Regions

题意:给定一个2维字符数组,由字符'X'和'O'组成,找出所有被包围的'O'(O向左,向右,向上,向下走在走出边界前会遇到字符'X'),将这些被包围的'O'变换成为'X'。思路:我们可以将2维数组的4个边界看成4个墙壁,从墙壁每一个字符为'O'处出发搜索,将每一个遇到的'O'做标记,直到越界或者遇见'X'的时候停止。然后重新遍历,将做标记的'O'处变换。代码实现:class S

2013-07-09 20:14:56 382

原创 leetcode Palindrome Partitioning

题意:给定一个字符串s,找出s所有的子串组合,其中每个子串都是回文串。比如所s = "cdd",应该返回[["c","d","d"],["dd"]]    [["c","d","d"],["c","dd"]]。思路:遇见这种找出所有答案的题目,一般都需要搜索(dfs或者bfs),这样便能够找出所有的可能。个人感觉递归这种东西要多做几道题才会有感觉,如果只是看的话,下次遇见还是不会,建议

2013-07-09 16:05:41 353

原创 leetcode Palindrome Partitioning II

题意:给定一个字符串s,将s进行分割,分割后每一部分都是回文串,求最少的分割次数。思路:此题是一个DP问题,设dp[i]为i到字符串s末尾满足要求所需要的最少切割次数,j > i。当i到j为回文数时,我们判断dp[i] = min(dp[i], 1 + dp[j + 1])。代码实现:class Solution {public: int minCut(string s) {

2013-07-09 13:28:02 368

原创 leetcode ZigZag Conversion

题意:将一个单词排成倒的Z的形状。      解题思路:找规律。这种题目没有具体的算法。将n = 1,2,3,4,,,等情况全部列出,然后找相邻两个数之间的关系。建议大家还是自己去找,不然看了答案也没有什么提高。代码:class Solution {public: string convert(string s, int nRows) { // Start typ

2013-07-02 17:40:32 397 1

原创 leetcode Longest Palindromic Substring

题意:找出一个字符串中的最大回文字串。思路:如果字符串s中存在一个回文字串,那么它的逆串t中也存在着这个回文字串,那么我们可以求s和t的最大连续公共子串。代码示例#include class Solution {public: string longestPalindrome(string s) { // Start typing your C/C++ so

2013-06-01 01:02:31 545

原创 leetcode Add Two Numbers

题意:给定两个数字,这两个数字用链表表示,每个节点保存一位数字,表头保存着个位数。求相加的和。思路:模拟加法的原理,该方法也可以用于大整数相加,比如说1000为的整数相加,数字无法用任何类型保存,所以用字符串保存然后模仿加法。代码示例:/** * Definition for singly-linked list. * struct ListNode { * int val;

2013-06-01 00:33:46 930

原创 leetcode Longest Substring Without Repeating Characters

题意:给定一个字符串s,找出s中的一个最长子串t,在t中没有重复的字符。思路:使用两个指针i和j,开始都指向第一个字符,向后移动j,直到发现j所指向的位置出现过一次。查看j - i的值是否是当前最大的,是的话更新保存的最大值。然后移动i,直到s[i] == s[j]停止,在移动过程中将i移动过程中记录的s[i]出现次数重置为0。然后重复j的移动,直到j大于字符串的长度。代码实现#inclu

2013-05-31 23:41:17 344

原创 leetcode Median of Two Sorted Arrays

题意:给定两个排好序的数组A和B,长度为m和n,要求找到它们按顺序排好以后的中位数。时间复杂度为O(log (m + n))。思路:中中位数其实就是找第k大的数,k = (m + n ) / 2。(奇数条件下,偶数条件下基本相同。)可以将题目转换成找第k大的数。1,首先将两个数组合并,然后找到中位数。合并时间复杂度为O(m + n)。2,不需要全部合并,只需要找前k个数,方法是比较两个

2013-05-31 23:18:45 711

原创 leetcode Two Sum

题目地址:http://leetcode.com/onlinejudge题意:给定一个数组和一个目标值,在数组中找到两个数相加为目标值。思路:1,最容易想到的就是暴力法。利用两个for循环遍历得到。时间复杂度为O(n2)。           2,先对数组排序,然后利用两个指针first和last指向头和尾,如果所指的值相加小于目标值就将first加1,否则的话将last减 1。直到f

2013-05-31 21:55:13 437

空空如也

空空如也

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

TA关注的人

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