
LeetCode
Yoc Lu
Do it yourself!
展开
-
3. Longest Substring Without Repeating Characters - LeetCode
Longest Substring Without Repeating Characters(字符串)给出一个字符串,求最长的无重复字符的子串,注意这里是子串,不是子序列,所以必须是连续的。思路:维护一个滑动窗口,窗口内都是没有重复的字符,我们需要尽可能的扩大窗口的大小。由于窗口在不停向右滑动,所以我们只关心每个字符最后出现的位置,并建立映射。窗口的右边界就是当前遍历到的字符的位置,为了...原创 2019-02-14 23:46:55 · 153 阅读 · 0 评论 -
14. Longest Common Prefix - LeetCode
Longest Common Prefix求输入的一系列字符串的最长公共前缀直接进行循环遍历判断,效果还行:class Solution {public: string longestCommonPrefix(vector<string>& strs) { string res="";//记录返回的最长公共字符串前缀 int ...原创 2019-03-06 21:42:24 · 225 阅读 · 0 评论 -
11. Container With Most Water - LeetCode
Container With Most Water求最大的一个的装水量。可以直接遍历,暴力求解,C++代码如下:class Solution {public: int maxArea(vector&amp;lt;int&amp;gt;&amp;amp; height) { int max=0,area=0; for(int i=0;i&amp;lt;height.size()-...原创 2019-02-26 14:21:20 · 151 阅读 · 0 评论 -
9. Palindrome Number - LeetCode
Palindrome Number判断回文数可以参考7. Reverse Integer,将待判断整数反转后的结果与原数比较,如果相等则为回文数。负数和零看作特殊情况单独处理。class Solution {public: bool isPalindrome(int x) { bool flag=false; int y=x; lo...原创 2019-02-25 14:44:21 · 181 阅读 · 0 评论 -
13. Roman to Integer - LeetCode
Roman to Integer将罗马数字转换为阿拉伯数字,由题分析可得限定输入数字的范围(1 - 3999)直接根据条件分类处理,效果还行,代码如下:class Solution {public: int romanToInt(string s) { int n=s.length(); int res=0,i; for(i=...原创 2019-02-28 21:52:09 · 153 阅读 · 0 评论 -
2. Add Two Numbers - LeetCode
Add Two Numbers(链表)从前到后模拟加法过程,用一个变量记录每次加法的进位。进位最开始为0,每次加法对应的节点数字相加再加上进位,对10取模得到结果对应位置,除以10得到新的进位。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next...原创 2019-02-13 22:14:31 · 189 阅读 · 0 评论 -
1. Two Sum - LeetCode
Two Sum(数组题)问题大意是在一个数组中找出和为目标值的两个数,具体如下:使用C++编程如下://法一:双重遍历,扫描所有可能组合,复杂度O(n^2)class Solution{public: vector&lt;int&gt; twoSum(vector&lt;int&gt;&amp; nums, int target){ for(int i = 0...原创 2019-02-12 23:30:02 · 173 阅读 · 0 评论 -
7. Reverse Integer - LeetCode
7. Reverse Integer翻转数字问题主要需要注意的就是溢出问题。int型的数值范围是 -2147483648~2147483647, 如果要翻转1000000009 这个在范围内的数得到 9000000001,翻转后的数就超过范围。 同时需要注意-2147483648取反后2147483648不能用int型表示。使用long long 型数据,其数值范围为 -922337203...原创 2019-02-23 16:05:03 · 170 阅读 · 0 评论 -
12. Integer to Roman - LeetCode
Integer to Roman将阿拉伯数字转化成罗马数字,由题分析可得限定输入数字的范围(1 - 3999)根据题目要求,强行按条件分类处理,效果一般:class Solution {public: string intToRoman(int num) { string res; if(num&gt;=3000){ ...原创 2019-02-27 22:00:19 · 184 阅读 · 0 评论 -
5. Longest Palindromic Substring - LeetCode
Longest Palindromic Substring(字符串)给定一个字符串s,找出s中最长的回文子字符串。以每一个字符为中心,向两边扩散寻找回文串,算法的时间复杂度O(n*n),可以通过OJ,要注意奇偶情况。由于回文串的长度可奇可偶,比如"bob"是奇数形式的回文,"noon"就是偶数形式的回文,两种形式的回文都要搜索。对于奇数形式的,从遍历到的位置为中心,向两边进行扩散;对于偶数情...原创 2019-02-16 20:56:50 · 293 阅读 · 0 评论 -
6. ZigZag Conversion - LeetCode
ZigZag Conversion(字符串)之字型转换字符串规律:画红色的长度永远是 2n-2。利用这个规律可以按行填字,第一行和最后一行,就是按照2n-2的顺序一点点加的。其他行除了上面那个填字规则,就是还要处理斜着那条线的字,可以发现那条线的字的位置永远是当前列j+(2n-2)-2i(i是行的index)。C++代码如下:class Solution {public: ...原创 2019-02-22 00:07:34 · 173 阅读 · 0 评论 -
4. Median of Two Sorted Arrays - LeetCode
Median of Two Sorted Arrays(数组)求两个有序数组的中位数,而且限制时间复杂度为O(log (m+n)),看到这个时间复杂度,自然而然想到使用二分查找来求解。但是这道题被定义为Hard,难在要在两个未合并的有序数组之间使用二分法,如果这道题只有一个有序数组求中位数的话就是个Easy题。考虑将两个有序数组混合起来成为一个有序数组求解,在这个时间复杂度限制显然行不通。那...原创 2019-02-16 00:03:20 · 204 阅读 · 0 评论 -
15. 3Sum - LeetCode
3Sum直接三层循环会超时class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<int> temp; vector<vector<int>> res; ...原创 2019-03-07 15:59:31 · 274 阅读 · 0 评论