Fork me on GitHub

随笔分类 -  leetcode

摘要:"欢迎fork and star:Nowcoder Repository github" 18. 4Sum 题目 解析 C++ class Solution_18 { public: vector fourSum(vector& nums, int target) { vector vecs; if 阅读全文
posted @ 2018-01-21 14:45 ranjiewen 阅读(164) 评论(0) 推荐(0) 编辑
摘要:"欢迎fork and star:Nowcoder Repository github" 17. Letter Combinations of a Phone Number 题目 解析 可以迭代,即依次读取字符串中的每位数字,然后把数字对应的字母依次加到当前的所有结果中,然后进入下一次迭代。也可以用 阅读全文
posted @ 2018-01-21 12:11 ranjiewen 阅读(472) 评论(0) 推荐(0) 编辑
摘要:16. 3Sum Closest 题目 解析 C++ // three sum closest class Solution_16 { public: // 三个指针操作O(N^2) test=([0,2,1, 3] 1);([1,1, 1, 1,3] 1) int threeSumClosest( 阅读全文
posted @ 2018-01-20 22:42 ranjiewen 阅读(182) 评论(0) 推荐(0) 编辑
摘要:15. 3Sum 题目 解析 想写出一次能AC的代码真不容易! 很多细节问题,和sumtwo不一样的是:这次有重复元素;sumtwo假定没有重复元素,且只需要返回下标值 要跳过重复的元素 题目来源 "15. 3Sum" 阅读全文
posted @ 2018-01-19 11:19 ranjiewen 阅读(132) 评论(0) 推荐(0) 编辑
摘要:14. Longest Common Prefix 题目 解析 leetcode官网给出了水平,垂直,二分,trie树的方法;但是感觉都需要把所有字符串遍历一遍,考虑用简单的水平遍历 C++ class Solution_14 { public: string longestCommonPrefix 阅读全文
posted @ 2018-01-18 21:07 ranjiewen 阅读(297) 评论(0) 推荐(0) 编辑
摘要:"欢迎fork and star:Nowcoder Repository github" 13. Roman to Integer 题目 解析: 给定 "DCXXI"字符串,从左向右走,左边是高位 需要用到map数据结构,来将罗马数字的字母转化为对应的整数值,因为输入的一定是罗马数字,那么我们只要考 阅读全文
posted @ 2018-01-18 20:30 ranjiewen 阅读(174) 评论(0) 推荐(0) 编辑
摘要:12. Integer to Roman 题目 Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. 首先要科普一下: "罗马数字" 解析 阅读全文
posted @ 2018-01-18 19:46 ranjiewen 阅读(165) 评论(0) 推荐(0) 编辑
摘要:"欢迎fork and star:Nowcoder Repository github" 11. Container With Most Water 题目 解析 再次体会到双指针操作的厉害了 理解题意为什么++ 就可以实现取最大的容器,容器的面积由短板决定!!! C++ // 11. Contain 阅读全文
posted @ 2018-01-18 19:24 ranjiewen 阅读(174) 评论(0) 推荐(0) 编辑
摘要:10. Regular Expression Matching 题目 解析 动态规划的问题一直都是难点,需要找出状态转移方程!!! 如果“ ”不好判断,那我大不了就来个暴力的算法,把“ ”的所有可能性都测试一遍看是否有满足的,用两个指针i,j来表明当前s和p的字符。 我们采用从后往前匹配,为什么这么 阅读全文
posted @ 2018-01-18 19:10 ranjiewen 阅读(276) 评论(0) 推荐(0) 编辑
摘要:8. String to Integer (atoi) 题目 解析 这道题要求的 atoi 跟C++实现的不一样吧,比如我以为不符合要求的返回 1,而这道题要求返回0。 所以,有必要解释一下题目的要求: 1. 首先需要丢弃字符串前面的空格; 2. 然后可能有正负号(注意只取一个,如果有多个正负号,那 阅读全文
posted @ 2018-01-16 21:49 ranjiewen 阅读(216) 评论(0) 推荐(0) 编辑
摘要:9. Palindrome Number 题目 解析 题目来源 "9. Palindrome Number" 阅读全文
posted @ 2018-01-16 20:45 ranjiewen 阅读(170) 评论(0) 推荐(0) 编辑
摘要:6. ZigZag Conversion 题目 解析 C++ // 6. ZigZag Conversion class Solution_6 { public: string convert(string s, int numRows) { if (numRows vec; //numRows行 阅读全文
posted @ 2018-01-16 11:45 ranjiewen 阅读(243) 评论(0) 推荐(0) 编辑
摘要:5. Longest Palindromic Substring 题目 解析 想到了左右拓展的方法,但是开始不知道怎么处理 动态规划的方法 C++ class Solution_5 { public: // reverse(res.begin(),res.end()); // return s == 阅读全文
posted @ 2018-01-16 10:47 ranjiewen 阅读(225) 评论(0) 推荐(0) 编辑
摘要:4. Median of Two Sorted Arrays 题目 解析 题目是这样的:给定两个已经排序好的数组(可能为空),找到两者所有元素中第k大的元素。另外一种更加具体的形式是,找到所有元素的中位数。本篇文章我们只讨论更加一般性的问题:如何找到两个数组中第k大的元素?不过,测试是用的两个数组的 阅读全文
posted @ 2018-01-14 14:45 ranjiewen 阅读(301) 评论(0) 推荐(0) 编辑
摘要:"欢迎fork and star:Nowcoder Repository github" 3. Longest Substring Without Repeating Characters 题目 解析 solution思路循序渐进,很值得思考! 对找到元素后更新位置处理,i取max(mp[s[j]] 阅读全文
posted @ 2018-01-14 11:30 ranjiewen 阅读(302) 评论(0) 推荐(0) 编辑
摘要:2. Add Two Numbers 题目 解析 ac的思路三个while()循环感觉很麻烦 可以将链表的长度求出来,以长的为标准,另一个以0补全 题目来源 "2. Add Two Numbers" 阅读全文
posted @ 2018-01-13 13:47 ranjiewen 阅读(153) 评论(0) 推荐(0) 编辑
摘要:1. Two Sum 题目 解析 C++ class Solution_1 { public: // O(n^2) vector twoSum(vector &numbers, int target) { vector vec; if (numbers.size()==0) { return vec 阅读全文
posted @ 2018-01-12 15:30 ranjiewen 阅读(155) 评论(0) 推荐(0) 编辑
摘要:100. Same Tree 题目 解析 "100. Same Tree" 阅读全文
posted @ 2018-01-12 14:28 ranjiewen 阅读(153) 评论(0) 推荐(0) 编辑
摘要:"欢迎fork and star:Nowcoder Repository github" 101. Symmetric Tree 题目 解析 递归和迭代实现 "101. Symmetric Tree" 阅读全文
posted @ 2018-01-12 10:30 ranjiewen 阅读(170) 评论(0) 推荐(0) 编辑
摘要:"欢迎fork and star:Nowcoder Repository github" 103. Binary Tree Zigzag Level Order Traversal 题目 解析 思路1:对奇数行vector进行反转 思路2:设置标志位,对奇数行取vector对应的元素 思路3:使用d 阅读全文
posted @ 2018-01-11 10:55 ranjiewen 阅读(261) 评论(0) 推荐(0) 编辑