草庐IT

leetcode:求两数之和-easy

全部标签

代码随想录算法训练营第七天|454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

454题.四数相加II454.四数相加II-力扣(LeetCode)解题思路这道题目是四个独立的数组,只要找到A[i]+B[j]+C[k]+D[l]=0就可以,不用考虑有重复的四个元素相加等于0的情况首先定义一个unordered_map,key放a和b两数之和,value放a和b两数之和出现的次数。遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中。定义int变量count,用来统计a+b+c+d=0出现的次数。在遍历大C和大D数组,找到如果0-(c+d)在map中出现过的话,就用count把map中key对应的value也就是出现次数统计出来。最后返回统计值count就可

leetcode—跳跃游戏—贪心算法

1跳跃游戏1给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。示例 1:输入:nums=[2,3,1,1,4]输出:true解释:可以先跳1步,从下标0到达下标1,然后再从下标1跳3步到达最后一个下标。示例 2:输入:nums=[3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为3的位置。但该下标的最大跳跃长度是0,所以永远不可能到达最后一个下标。方法:贪心算法对于每一个可以到达的位置x,他使得x+1,x+2,...,x+num

算法练习Day30 (Leetcode/Python-动态规划)

62.UniquePathsThereisarobotonan mxn grid.Therobotisinitiallylocatedatthe top-leftcorner (i.e., grid[0][0]).Therobottriestomovetothe bottom-rightcorner (i.e., grid[m-1][n-1]).Therobotcanonlymoveeitherdownorrightatanypointintime.Giventhetwointegers m and n,return thenumberofpossibleuniquepathsthatther

leetcode热题100. 字母异位词分组

Problem:49.字母异位词分组文章目录题目思路复杂度Code题目给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的所有字母得到的一个新单词。示例1:输入:strs=[“eat”,“tea”,“tan”,“ate”,“nat”,“bat”]输出:[[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]示例2:输入:strs=[“”]输出:[[“”]]示例3:输入:strs=[“a”]输出:[[“a”]]提示:11strs.length10400strs[i].length100strs[i]仅包含小写字母

力扣(LeetCode)数据结构练习题(2)

今天又写了两道关于链表的练习题,来给大家分享一下。巩固一下上一篇学到的链表知识,题目可以然我们更清楚的认识链表。目录给你单链表的头节点 head ,请你反转链表,并返回反转后的链表给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表 现在我们来审题,题目很明了让我们反转一个单向链表,那么这里我们就可以简单思考一下思路了,有了思路我们就可以开始尝试一下写代码了。下面是我的方法:方法一:我们这里是将节点里的指针进行反转即可完成链表的反转。/***Definitionforsingly

leetcode刷题--贪心算法

七.贪心算法文章目录七.贪心算法1.605种花问题2.121买卖股票的最佳时机3.561数组拆分4.455分发饼干5.575分糖果6.135分发糖果7.409最长回文串8.621任务调度器9.179最大数10.56合并区间11.57插入区间13.452用最少数量的箭引爆气球14.435无重叠区间15.646最长数对链16.406按照身高重建队列17.48旋转图像18.169多数元素19.215数组中的第k个最大元素20.75颜色分类21.324摆动顺序II22.517超级洗衣机[未解]23.649Dota2参议院24.678有效的括号字符串25.420强密码检验器26.53最大子数组和27.1

【leetcode刷题之路】面试经典150题(2)——双指针+滑动窗口+矩阵

文章目录2双指针2.1【双指针】验证回文串2.2【双指针】判断子序列2.3【双指针】两数之和II-输入有序数组2.4【双指针】盛最多水的容器2.5【双指针】三数之和3滑动窗口3.1【双指针】长度最小的子数组3.2【滑动窗口】无重复字符的最长子串3.3【哈希表】串联所有单词的子串3.4【哈希表】最小覆盖子串4矩阵4.1【哈希表】有效的数独4.2【模拟】螺旋矩阵4.3【数学】旋转图像4.4【哈希】矩阵置零4.5【模拟】生命游戏2双指针2.1【双指针】验证回文串题目地址:https://leetcode.cn/problems/valid-palindrome/description/?envTyp

(Datawhale组队学习)Leetcode面试篇-Task2

题目1Leetcode33 搜索旋转排序数组 描述:给定一个整数数组 nums,数组中值互不相同。给定的 nums 是经过升序排列后的又进行了「旋转」操作的。再给定一个整数 target。 要求:从 nums 中找到 target 所在位置,如果找到,则返回对应下标,找不到则返回 -1。 说明:旋转操作:升序排列的数组nums在预先未知的第k个位置进行了右移操作,变成了 [nums[k]],nums[k+1],...,nums[n-1],...,nums[0],nums[1],...,nums[k-1]。 deffindmins(A,left,right):index=rightwhilele

leetcode77组合 剪枝条件详细解释

题目:77.组合-力扣(LeetCode)题解:力扣(LeetCode)官网-全球极客挚爱的技术成长平台思路来自代码随想录:带你学透回溯算法-组合问题(对应力扣题目:77.组合)|回溯法精讲!_哔哩哔哩_bilibili带你学透回溯算法-组合问题的剪枝操作(对应力扣题目:77.组合)|回溯法精讲!_哔哩哔哩_bilibili对其中的剪枝条件做详细解释剪枝部分代码为for(inti=index;i剪枝条件为i1.i是起到一个遍历的作用,未剪枝之前,它的作用是从【i,n】这个区间里遍历,找到继续加入到path里的数值2.给出n,k求【1,n】中,大小为k(元素个数为k)的集合3.这个集合一定不是正

【leetcode】深搜、暴搜、回溯、剪枝(C++)3

深搜、暴搜、回溯、剪枝(C++)3一、解数独1、题目描述2、代码3、解析二、单词搜索1、题目描述2、代码3、解析三、黄金矿工1、题目描述2、代码3、解析四、不同路径III1、题目描述2、代码3、解析一、解数独1、题目描述leetcode链接2、代码classSolution{public://全局变量boolrow[9][10];//行boolcol[9][10];//列boolgrid[3][3][10];//小格子voidsolveSudoku(vectorvectorchar>>&board){//初始化for(inti=0;i9;i++){for(intj=0;j9;j++){if(b