![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题
csliudh
这个作者很懒,什么都没留下…
展开
-
leetcode 151. Reverse Words in a String
这个题目给的要求比较烦,刚开始以为直接把单词位置反转即可,结果用c++写完以后发现还要去掉左右两边的空格而且把单词之间多余的空格变成一个,果断使用python来写。class Solution(object): def reverseWords(self,s): """ :type s: str :rtype: str "原创 2017-10-17 16:28:11 · 125 阅读 · 0 评论 -
leetcode 617. Merge Two Binary Trees
这个题目本质是对两棵树做遍历,同时生产一棵新的树,树的节点值就是原来两棵树节点值的和刚开始我的思路如下:class Solution {public: TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) { if(t1==NULL && t2==NULL) { return NU原创 2017-10-15 13:53:38 · 281 阅读 · 0 评论 -
leetcode 4. Median of Two Sorted Arrays
这个题目我的思路是从两个数组的开始位置向后找第(nums1.size()+nums2.size())/2和第(nums1.size()+nums2.size()-1)/2大的元素,如果总元素个数是奇数返回第(nums1.size()+nums2.size())/2大的元素即可,否则求一个均值。class Solution {public: double findMedianS原创 2017-10-24 15:35:58 · 133 阅读 · 0 评论 -
leecode 5. Longest Palindromic Substring
这个题目刚开始的想法是用暴力方法求解,结果超时了,很气,就已经成功完成92个用例了,就差一个了。代码如下(这种方法是最耗时间的,时间复杂度是O(n^3)):class Solution {public: string longestPalindrome(string s) { int start=0,maxlength=1; int length=s.原创 2017-10-25 12:21:48 · 140 阅读 · 0 评论 -
leetcode 657. Judge Route Circle
这个题目比较简单,设置x,y两个变量用来标识横坐标与纵坐标即可。class Solution {public: bool judgeCircle(string moves) { int x=0,y=0; for(int i=0;i<moves.size();i++) { if(moves[i]=='U')原创 2017-10-16 17:54:05 · 158 阅读 · 0 评论 -
leetcode 535. Encode and Decode TinyURL
这个题目如果自己写一个算法的话确实很难,但是这个是没有什么要求的,因此就简单多了。最简单的就是不做任何处理,直接返回class Solution {public: // Encodes a URL to a shortened URL. string encode(string longUrl) { return longUrl; }原创 2017-10-16 18:29:52 · 206 阅读 · 0 评论 -
输入n输出1/3+3/5+5/7+······+n/(n+2)的分数形式(n<40)
#include "stdafx.h"#include#include#includeusing namespace std;int main(){ long long fenzi, fenmu; int n,start; while (scanf("%d", &n)!=EOF) { time_t begin=clock(); fenmu = 3; fenzi = 1;原创 2017-11-05 10:05:17 · 1589 阅读 · 0 评论 -
Leetcode每日一道 -- 两数之和
题目链接: https://leetcode-cn.com/problems/two-sum/description/题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], targe...原创 2018-11-21 23:52:08 · 165 阅读 · 0 评论 -
Leetcode每日一道 -- 两数相加
题目链接: https://leetcode-cn.com/problems/add-two-numbers/description/题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数...原创 2018-11-22 13:12:20 · 226 阅读 · 0 评论 -
Leetcode每日一道 -- 无重复字符的最长子串
题目链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/description/题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为...原创 2018-11-23 23:23:50 · 199 阅读 · 0 评论 -
Leetcode每日一道 -- 整数反转
今天有点儿偷懒,选择刷了最简单的一个入门题。直接上代码class Solution {public: int reverse(int x) { long long res=0; while(x!=0) { res=res * 10 + x % 10 ; x /= 10; ...原创 2018-11-28 23:07:21 · 159 阅读 · 0 评论 -
Leetcode每日一道--三数之和
题目描述:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。基本思路 :最简单的思路就是使用 三层循环,但是时间会超。我的想法是先对nums做一个排序,接着第一个元素从[ 0 , length-2 ] 寻找,第二个元素和第三个元素利用双指针方法找,这样做复杂度就可以达到...原创 2018-12-18 22:52:54 · 345 阅读 · 0 评论 -
leetcode每日一刷--跳跃游戏
题目描述: 给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引...原创 2019-01-05 19:06:39 · 189 阅读 · 0 评论 -
Leetcode每日一刷--矩阵置零
题目描述如下:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例 1:输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]这个题目要求使用原地算法,尽量使用O(1) 空间。这个题目的难点是前面的元素为0导致后面的元...原创 2019-01-06 18:14:35 · 378 阅读 · 2 评论 -
leetcode 461. Hamming Distance
这个题目比较简单,一边转化为二进制数,一边比较每一位数字是否相等。class Solution {public: int hammingDistance(int x, int y) { int length=0; while(x!=0 || y!=0) { if(x%2!=y%2)原创 2017-10-15 13:10:10 · 136 阅读 · 0 评论 -
leetcode 665. Non-decreasing Array
这个题目好像不难,但是死都理解不了,自己好水啊。。。虽然这个题目主要是掌握特例:[2,5,3,4]. 5后面虽然有3,4都比5小,但是通过修改5为3可以实现目标。因此比较的时候不仅要考虑和前一个元素进行比较,还要和前两个进行比较(必须满足i-2>=0)转载 2017-10-23 20:31:42 · 115 阅读 · 0 评论 -
16. 3Sum Closest
这个题目确实不知道这种解法,看来以后遇到问题得多思考这种 指针挪动 的方法了,加油class Solution {public: int threeSumClosest(vector& nums, int target) { int length=nums.size(),res=nums[0]+nums[1]+nums[2]; sort(nums.b转载 2017-10-27 12:48:58 · 111 阅读 · 0 评论 -
leetcode 14. Longest Common Prefix
这么简单的一个题目居然总是出错,看来功力太浅了class Solution { public: string longestCommonPrefix(vector& strs) { string prefix=""; int i=0; if(strs.size()==1) return strs[0]; while(strs.size()>0) //防止空的字符串数组 { for(int原创 2017-10-26 16:46:07 · 115 阅读 · 0 评论 -
leetcode 523. Continuous Subarray Sum
这个题目自己刚开始以为用暴力求解是最简单的方法,最优方法是动态规划,没想到还有这种解法,又好理解又快。基本思路是这样:class Solution {public: bool checkSubarraySum(vector& nums, int k) { int length=nums.size(); if(length<2)转载 2017-10-20 11:38:17 · 172 阅读 · 0 评论 -
17. Letter Combinations of a Phone Number
这个题目的难点主要在循环这部分,感觉temp省了不少事。另外:strs.swap(temp)也是头一次知道这个用法。不过O(n3)居然这次么有超时,很神奇class Solution {public: vector letterCombinations(string digits) { vector strs; if(digits.size()==0)转载 2017-10-28 12:43:54 · 137 阅读 · 0 评论 -
leetcode 130 Submission Details
今天刷的这题目不难,但是惯性的把它想到了图的遍历上面,忽略了问题的本质是从矩阵的边框入手的。说明分析问题的能力差的还远,继续吧class Solution {public: void solve(vector>& board) { int rows=board.size(); if(rows==0) return ;转载 2017-10-21 20:36:09 · 170 阅读 · 0 评论 -
模板匹配
日常opencv,这里用了女神的图片// 模板匹配.cpp: 用一个模板滑动窗口去匹配某张图片的区域//#include "stdafx.h"#include#include#includeusing namespace cv;using namespace std;#define WIN_NAME1 "【原始窗口】"#define WIN_NAME2 "【效果窗口】"M原创 2017-10-12 21:47:54 · 311 阅读 · 0 评论 -
leetcode 15.3 Sum
刚开始想的方法是暴力求解,但是时间会超时,进行了改进也依然超时。class Solution {public: vector > threeSum(vector& nums) { int length=nums.size(); int a,b,c; vector > res; sort(nums.begin(),nums原创 2017-10-13 10:22:07 · 149 阅读 · 0 评论 -
leetcode 3. Longest Substring Without Repeating Characters
这个题目刚开始想用动态规划来解决,但是水平不够,写不出来。用暴力求解的话,时间复杂度为O(n^3),肯定会超时,因此我想到了STL中的集合用来判断某个字符是否重复出现,这样的话时间复杂度大概可以达到O(n^2*logn),结果显示确实时间代价大,大概450ms,差一点就gg了。代码如下:class Solution {public: int lengthOfLongestSubstr原创 2017-10-13 20:18:32 · 114 阅读 · 0 评论 -
leetcode 8. String to Integer (atoi)
这个题目很奇怪,按理来说应该不难,但是有很多的特殊情况需要考虑,各种乱七八糟的特例。"+2","-156"," -9","+-2","-+3"等类似的情况,所以多错几次来试错还是有必要的。class Solution {public: int myAtoi(string str) { long result = 0; int flag = 1; for(i原创 2017-10-14 09:25:29 · 121 阅读 · 0 评论 -
查找数组中第一个大于/大于等于的元素下标
这个问题应该肯定使用二分查找,时间复杂度是O(logn)。比较麻烦的一点在于如何当前这个数是不是第一个大于等于这个数的下标,需要我们用 res 来存放最近的满足条件的那个数,这样left或者right变化就不怕了。也可以直接借助标准库中的 lower_bound 和 upper_bound() ,详细见https://blog.csdn.net/qq_40160605/article/detail...原创 2019-08-20 20:59:52 · 6358 阅读 · 1 评论