草庐IT

LeetCode使用JavaScript破解两数之和

有人相爱,有人夜里开车看海,我是leetcode第一题都做不出来题目给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。方式一:暴力破解第一眼看到这个问题时,想到的解题方法就是使用for循环,两个for循环进行遍历,每一项进行相加,当等于target时,就可以返回他们的下标vartwoSum=functi

LeetCode使用JavaScript破解两数之和

有人相爱,有人夜里开车看海,我是leetcode第一题都做不出来题目给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。方式一:暴力破解第一眼看到这个问题时,想到的解题方法就是使用for循环,两个for循环进行遍历,每一项进行相加,当等于target时,就可以返回他们的下标vartwoSum=functi

leetcode 448. Find All Numbers Disappeared in an Array 找到所有数组中消失的数字(简单)

一、题目大意标签:数组https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array给你一个含n个整数的数组nums,其中nums[i]在区间[1,n]内。请你找出所有在[1,n]范围内但没有出现在nums中的数字,并以数组的形式返回结果。示例1:输入:nums=[4,3,2,7,8,2,3,1]输出:[5,6]示例2:输入:nums=[1,1]输出:[2]提示:n==nums.length11进阶:你能在不使用额外空间且时间复杂度为O(n)的情况下解决这个问题吗?你可以假定返回的数组不算在额外空间内。二、解题思路把所

leetcode 448. Find All Numbers Disappeared in an Array 找到所有数组中消失的数字(简单)

一、题目大意标签:数组https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array给你一个含n个整数的数组nums,其中nums[i]在区间[1,n]内。请你找出所有在[1,n]范围内但没有出现在nums中的数字,并以数组的形式返回结果。示例1:输入:nums=[4,3,2,7,8,2,3,1]输出:[5,6]示例2:输入:nums=[1,1]输出:[2]提示:n==nums.length11进阶:你能在不使用额外空间且时间复杂度为O(n)的情况下解决这个问题吗?你可以假定返回的数组不算在额外空间内。二、解题思路把所

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

454、四数相加Ⅱ·map哈希表当初不知四数相加的好,做完四数之和发现~oh这题真简单题目链接:https://leetcode.cn/problems/4sum-ii/前提:计算四个数组中多少个元组满足条件(值可以重复)思路:四个数组分别两两相加|时间复杂度O(n^2)   前两个数组相加的值作为map的键   map中查找等于(0-后两个数组相加的值)的键   找到则+该键值(这个值可能大于一)代码实现:unordered_map哈希表     时间复杂度O(n^2)     空间复杂度O(n)classSolution{public:intfourSumCount(vector&nums

leetcode 665. Non-decreasing Array 非递减数列(中等)

一、题目大意标签:贪心https://leetcode.cn/problems/non-decreasing-array给你一个长度为 n 的整数数组 nums ,请你判断在最多改变 1个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的 i(0示例1:输入:nums=[4,2,3]输出:true解释:你可以通过把第一个4变成1来使得它成为一个非递减数列。示例2:输入:nums=[4,2,1]输出:false解释:你不能在只改变一个元素的情况下将其变为非递减数列。提示:n==nums.length1-105 二、解题思路最多只有一次修改某个数字的机会

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

454、四数相加Ⅱ·map哈希表当初不知四数相加的好,做完四数之和发现~oh这题真简单题目链接:https://leetcode.cn/problems/4sum-ii/前提:计算四个数组中多少个元组满足条件(值可以重复)思路:四个数组分别两两相加|时间复杂度O(n^2)   前两个数组相加的值作为map的键   map中查找等于(0-后两个数组相加的值)的键   找到则+该键值(这个值可能大于一)代码实现:unordered_map哈希表     时间复杂度O(n^2)     空间复杂度O(n)classSolution{public:intfourSumCount(vector&nums

leetcode 665. Non-decreasing Array 非递减数列(中等)

一、题目大意标签:贪心https://leetcode.cn/problems/non-decreasing-array给你一个长度为 n 的整数数组 nums ,请你判断在最多改变 1个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的 i(0示例1:输入:nums=[4,2,3]输出:true解释:你可以通过把第一个4变成1来使得它成为一个非递减数列。示例2:输入:nums=[4,2,1]输出:false解释:你不能在只改变一个元素的情况下将其变为非递减数列。提示:n==nums.length1-105 二、解题思路最多只有一次修改某个数字的机会

LeetCode - 寻找两个正序数组的中位数

题目信息源地址:寻找两个正序数组的中位数给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为\(O(log(m+n))\)。提示信息示例1输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例2输入:nums1=[1,2],nums2=[3,4]输出:2.50000解释:合并数组=[1,2,3,4],中位数(2+3)/2=2.5提示nums1.length==mnums2.length==n001-10^6实现逻辑归并法最先想到的解题方法就是,将两个有序数组合

LeetCode算法训练-回溯 491.递增子序列 46.全排列 47.全排列 II

欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-回溯491.递增子序列46.全排列47.全排列IILeetCode491.递增子序列分析找出并返回所有数组中不同的递增子序列绝对不能先升序绝对不能先升序绝对不能先升序这样会改变原有数组的结构子序列中元素在数组中不一定相邻只要叶子节点,也就是path,一满足条件,直接加入res注意去重used[]数组只针对当前节点的后序节点要在回溯函数中定义画回溯树一看便知代码classSolution{privateLinkedListpath=newLinkedList();privateList>res=newArrayList();publicL