leetcode刷题
ChasingdreamLY
一个不想写程序又想赚钱的码农......
展开
-
LeetCode每日一练(21) Merge Two Sorted Lists C++版
题目题干解析这题没太多可说的,顺序遍历,逐个添加就好,稍微注意一下各种情况。知识点 数据结构之链表难度简单解题思路这道题主要考察对链表的熟悉程度,代码里注释得比较清楚,详细解题思路请见代码。代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; *原创 2018-03-22 15:30:25 · 157 阅读 · 0 评论 -
LeetCode每日一练(3) Longest Substring Without Repeating Characters C++版
题目解题思路这个题是一个比较典型的动态规划问题。解题思路大致如下:以abcbef这个串为例 用一个数据结构pos记录每个元素曾出现的下标,初始为-1 从s[0]开始,pos[‘a’] == -1,说明a还未出现过,令pos[‘a’] = 0,视为将a”加入当前串”,同时长度++ 同理令pos[‘b’] = 1,pos[‘c’] = 2 到s[3]时,pos[‘b’] != ...原创 2018-03-24 01:03:22 · 206 阅读 · 0 评论 -
LeetCode每日一练(7) Reverse Integer C++版
先附上题目: Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321Example 2: Input: -123 Output: -321Example 3: Input: 120 Output: 21Note: Assume ...原创 2018-03-20 14:55:49 · 181 阅读 · 0 评论 -
LeetCode每日一练(5) Longest Palindromic Substring C++版
题目解题思路我们知道传统的验证回文串的方法就是两个两个的对称验证是否相等,那么对于找回文字串的问题,就要以每一个字符为中心,像两边扩散来寻找回文串,这个算法的时间复杂度是O(n*n),可以通过OJ,就是要注意奇偶情况,由于回文串的长度可奇可偶,比如”bob”是奇数形式的回文,”noon”就是偶数形式的回文,两种形式的回文都要搜索,参见代码见下(这是最笨的一种方法,应该也可以使用动态规划...原创 2018-03-24 13:49:50 · 159 阅读 · 0 评论 -
LeetCode每日一练(9) Palindrome Number C++版
题目解题思路题目要求只能用O(1)的空间,所以首先排除把它转化为字符串然后reverse比较的方法。 我开始想的是将原整数倒置,和原来整数比较大小,相同则为true,不相同则为false,没想到又引出了数字溢出的问题。 以上两种方法既然不可取,那么只能选择分离数字的方法,当然要用到大量除10和取余数的计算。代码class Solution {public: bool isPalindr原创 2018-03-25 13:37:43 · 191 阅读 · 0 评论 -
LeetCode每日一练(2) Add Two Numbers C++版
题目题干解析给你两个非空链表,要你把他们“加”起来,并且返回答案链表。所谓的加就是每对应的两个节点数相加,要注意到的是,答案不能超过10,只有一位数,而如果超过10的话要进位。知识点 数据结构之链表难度 中等解题思路这道题主要考察对链表的熟悉程度,主要就是对新节点的生成,添加进原链表的操作的训练,其它的注意一下进位的要求。从两个链表的第一节点开始往后加,每到一个新的...转载 2018-03-21 16:03:36 · 151 阅读 · 0 评论 -
LeetCode每日一练(6) ZigZag Conversion C++版
题目解题思路这个题目总的来说难度不大,主要问题在于对题意的理解,开始我甚至想着要不要通过相邻字符串之间的数值关系去做这个题,现在觉得这种思路应该也行,但是其实想复杂了。直接设置两个标记,然后按照字符顺序依次读取就好了,下面给出代码(代码中有注释,可以自己理解)。代码class Solution {public: string convert(string s, int numRows) {原创 2018-04-03 11:07:58 · 170 阅读 · 0 评论