3 Taco_Tuesdayyy

尚未进行身份认证

我要认证

坚持自己所坚持,热爱自己所热爱; 努力的人运气都不会太差;

等级
TA的排名 5w+

Leetcode每日一题:1365.how-many-numbers-are-smaller-than-the-current-number(有多少小于当前数字的数字)

思路:暴力破解的时间复杂度为O(n2),且这里数组长度不大于500,也就是上万的数量级,肯定不会超时;class Solution {public: vector<int> smallerNumbersThanCurrent(vector<int> &nums) { int len = nums.size(); vector<int> res(len, 0); for (int i = 0; .

2020-10-26 09:04:13

Leetcode每日一题:845.longest-mountain-in-array(数组中的最长山脉)

思路:这道题可以设两个标志位up 和 down,分别表示上山状态和经过上山后的下山状态,所以会遇到以下几种情况,分情况处理即可;1、遇到上坡:下山状态down==true遇到上坡,说明前一个山脉已结束,更新max_count值;上山状态 or 平地后 遇到上坡,直接count++;2、遇到下坡:上山状态up=true遇到下坡,count++;改变状态为下山up=false,down=true,开始下山;下山状态遇到下坡,count++,继续下山;平地后遇到下坡,除max_count外,.

2020-10-25 19:20:33

Leetcode每日一题:1024.video-stitching(视频拼接)

static bool cmp(vector<int> a, vector<int> b) //比较函数{ return a[0] < b[0];}int videoStitching(vector<vector<int>> &clips, int T){ int len = clips.size(), res = 0; if (len == 0) { return 0; } .

2020-10-24 10:03:25

Leetcode每日一题:31.next-permutation(下一个全排列)

题目意思是找到给出数字序列的下一个更大排列,比如给定1,2,3那么就是找到比123大的数中最小的数,即132,那么它的排列就是1,3,2;思路:如果全都是降序的,那么肯定不存在比它大的排列,所以step1:一定是找到里面的一个升序对,然后把大数与小数交换位置,比如12843,交换2,8得到18243,但如果交换1,2,就会得到比18243更大的21843,所以要从右向左找到第一对升序对;step2:18243并不是大于12843的最小的数,原因是这个8太大了,很明显13842大于12843但比182.

2020-10-23 09:35:14

Leetcode每日一题:763.partition-labels(划分字母区间)

题意大概是:对于所给字符串S,把它分成几个部分,使得相同的字母只出现在同一个部分;思路:先扫描一遍字符串,记录下每个字符最后出现的位置;然后利用双指针遍历字符串,设置变量end用于表示分隔开的子字符串的末尾在S里的下标,变量start表示子字符串的开头在S里的下标;如果当前扫描的元素的最后一次出现的下标比end大,就说明子字符串还需要延长,就更新end,如果当前扫描的元素的下标已经达到了end,就说明这个子字符串完全符合要求,就可以把答案(子字符串的元素个数end-start+1)添加到res中,同时.

2020-10-22 09:17:01

Leetcode每日一题:925.Long Pressed Name(长按键入)

大致意思就是typed对应位置上的相同字符数要大于等于name对应位置上的字符思路:双指针遍历,每次都找出对应位置上字符的个数,再比较即可,注意不要忘了typed字符串过长的问题;bool isLongPressedName(string name, string typed){ //双指针遍历两个字符串 int p1 = 0, p2 = 0; int len1 = name.size(), len2 = typed.size(); if (len1 == 0 &a.

2020-10-21 10:26:07

Leetcode每日一题:143.reorder-list(重排列表)

思路:个人用的方法比较普通,利用栈和引用的特性,让他们一个后退一个前进,然后连接起来即可;另一个简介的思路就是,先用快慢指针找到中点,把原链表分成两个链表,然后将后链表逆序,再将后链表对应插入前链表即可;void fun(ListNode *&head1, ListNode *head2, int &size, int now, bool &flag){ if (head2 == nullptr) //到达链表尾节点 { return; .

2020-10-20 19:15:28

Leetcode每日一题:844.backspace-string-compare(比较含退格的字符串)

思路:用栈的机制模拟退格过程;本来不想用这种方法的,对时间复杂度不满意,想用双指针写但没写出来;string compare(string s){ string res = ""; int len = s.size(); int num = 0; //最好手动用num记录数组元素个数,如果每次都用s.size()会导致时间复杂度增大 for (int i = 0; i < len; i++) { if (s[i] != '#') .

2020-10-19 12:33:58

Google浏览器一开启就提示“请停用以开发者模式运行的扩展程序“解决方案

参考文章:知乎链接step1 :打开命令行 输入regeditstep2:依次点击HKEY_CURRENT_USER\Software\Google\Update\ClientState{8A69D345-D564-463c-AFF1-A69D9E530F96},点进去step3:右键->新建->字符串值(S)step4:把刚创建改为,名称ap, 数据x64-dev,然后重启Chrome就行了...

2020-10-19 09:58:38

Leetcode每日一题:52.N-Queens II(N皇后Ⅱ)

思路:一共有n行n列,放置n个皇后,同行同列同斜对角线都最多只能有一个皇后;相当于从0~n-1行,每一行放一个,把第k行的皇后放在第j列时,检查前面0~k-1行的皇后是否与第k行皇后的位置冲突,若冲突则尝试把它放下一列//判断第k行的皇后所放置的位置是否与前面k-1个皇后冲突bool judge(int *place, int k, int j){ for (int i = 0; i < k; i++) { //判断第i个皇后是否与第k个皇后同列,或者同对角线.

2020-10-18 21:59:52

Leetcode每日一题:724.Find Pivot Index(寻找中心索引)

题目的意思就是,求出数组中这样一个索引:它左边的元素之和等于它右边的元素之和;思路:遍历一遍得到数组总和sum,然后再次遍历,设sum_left为当前元素i的左边所有元素之和,那么如果sum_left*2+nums[i]==sum,则说明找到该索引;class Solution {public: int pivotIndex(vector<int>& nums) { int len=nums.size(); if(len==0) .

2020-10-16 15:24:58

一道把递归、链表、引用、双指针都结合的题——回文链表

题目描述:给出一个链表,然你判断它是不是回文链表,是则返回true,不是则返回false;比如1 2 3 5 3 2 1和1 2 3 5 5 3 2 1都是回文链表;限制条件:控制时间复杂度为O(n)、空间复杂度为O(1);解题思路:step1:判断是否为回文链表,必然要判断前半部分(顺序)和后半部分(反序)的元素是否全部一致;所以,我们首先要找到链表的中间结点;这里可能会想到先遍历一遍结点得到长度size,然后再从头遍历size/2的结点即可得到中间结点,这是普通的方法,需要遍历1.5次链表;而

2020-10-15 14:07:08

Leetcode每日一题:234.palindrome-linked-list(回文链表)

思路:想法1:快慢指针遍历一遍字符串得到字符串长度以及中间结点的位置,然后对后半部分链表反转,最后从头比较前半部分链表和反转后的后半部分链表;想法2:利用栈先进后出和函数参数引用来对字符串进行递归比较!#include <iostream>#include <vector>#include <queue>using namespace std;struct ListNode{ int val; ListNode *next; ListNode(.

2020-10-15 13:04:38

Leetcode每日一题:226.invert-binary-tree(翻转二叉树)

思路:就是将节点的左指针指向右孩子,右指针指向左孩子,递归即可实现;/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public.

2020-10-15 09:39:13

Leetcode每日一题:116.populating-next-right-pointers-in-each-node(填充每个节点的下一个右侧节点指针)

思路:对整个满二叉树进行层次遍历,同时把每一层的节点连起来now->next=q.front(),当到达该层最后一个结点时(len-1)时,令其指向NULL;/*// Definition for a Node.class Node {public: int val; Node* left; Node* right; Node* next; Node() : val(0), left(NULL), right(NULL), next(NULL) {.

2020-10-15 08:45:21

Leetcode每日一题:1002.find-common-characters(查找常用字符串)

思路:可用暴力法,找出最短字符串short_string,然后对里的每个字符c,都在A里面搜索字符c的数量,数量最小值就是c在所有字符串中出现的次数;也可用计数法,即求每个字符串之间字符数量的交集;暴力法:class Solution {public: vector<string> commonChars(vector<string> &A) { vector<string> res; //先找出最短的字符.

2020-10-14 15:53:17

Leetcode每日一题:24.swap-nodes-in-pairs(两两交换链表中的节点)

思路:递归或者迭代,每次使用三个节点,pre、now、next即可实现交换,主要对链表头两个节点的交换有特殊性(不能用pre);奇怪的是递归和迭代所占空间竟然差不多;struct ListNode{ int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next) : val(x).

2020-10-14 13:56:17

Windows下Goland的环境搭建

目录1、安装包下载2、环境变量配置2.1 配置GOROOT2.2 配置GOPATH2.3 检测环境3、测试输出1、安装包下载进入Go官方下载界面下载并安装,安装时注意最好不要将其安装在C盘,我这里将它安装在D盘;2、环境变量配置安装包会自动添加环境变量,但是默认的Go工作空间C盘,而我们一般不在C盘放自己的文件,这里以我的工作空间为例我的Go项目文件放在D盘的GoFiles文件夹中,所以这里演示重新配置;主要是配置两个环境变量:GOROOT和GOPATH;GOROOT指GO的安装目录GOP

2020-10-13 09:17:00

Leetcode每日一题:530.minimum-absolute-difference-in-bst(二叉搜索树的最小绝对值)

思路:根据二叉搜索树的中序遍历是递增的这一性质,我们只需列出中序遍历的结果,并遍历一遍便可得到最小绝对值,或者在中序遍历的过程中,min{now-pre,res}进行比较; void dfs(TreeNode* root, int& pre, int& ans) { if (root == nullptr) { return; } dfs(root->left, pre, ans); .

2020-10-12 20:14:43

Leetcode每日一题:416.partition-equal-subset-sum(分割等和子集)

思路:这题从动态规划的思想上来看很像0-1背包问题,后者需要小于等于背包容量的条件下价值最大化,这里则是刚好等于数组之和的一半;1°,要想满足条件,数组之和sum必须为偶数,并且目标值target=sum/2,所要做的就是在数组中找到若干个元素,使之和为target;2°,建立动态规划模型,bool dp[len][taeget+1]中,dp[i][j]的值表示数组[0,i]中是否存在若干个元素的和为j;3°,边界条件{对于所有dp[i][0]=true,因为数组[0,i]我都可以不选从而达到j=0.

2020-10-11 13:42:53

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取