LeetCode27:移除元素
题目描述: 方法1:使用双指针,快慢指针,慢指针用于将所有不等于val的元素前移,fast指针用于寻找每个不等于val的元素 class Solution { public: int removeElement(vector<int>& nums, int val) { in
题目描述: 方法1:使用双指针,快慢指针,慢指针用于将所有不等于val的元素前移,fast指针用于寻找每个不等于val的元素 class Solution { public: int removeElement(vector<int>& nums, int val) { in
题目描述: 方法1:二分查找 注意点: middle = (left + right) / 2,最好改为middle = left + ((right - left) / 2),不然可能会发生溢出 left <= right,而不是< class Solution { public: int
题目描述: 方法1:动态规划,分别求最大子数组和和最小子数组和,他们的绝对值中最大的一个即为题目要求 class Solution { public: int maxAbsoluteSum(vector<int>& nums) { int p = max(0,nums[0])
题目描述: 方法1:动态规划,题目类似于最大子数组和,本题中p表示以nums[i]结尾的最大开销的子数组,val哈希表存储每个字母的开销 m是最大开销的子数组 class Solution { public: int maximumCostSubstring(string s, string
题目描述:给你一个整数数组 nums 和一个整数 k。如果某个连续子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中 「优美子数组」 的数目。 方法1:哈希表,i次循环处理每一个数,用一个数记录第i个数与第i个数之前奇数数字个数,用一个哈希表存储第i个数之前所有可
题目描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 方法1:哈希表,key为nums[i],value为i,一边遍历一边
题目描述:给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。子数组是数组中元素的连续非空序列。 方法1:前缀和+哈希表,i次循环处理每一个数,用一个数记录第i个数的前缀和,用一个哈希表存储第i个数之前所有数的不同前缀和以及其出现的次数,只要(第i个数的
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。 方法1:二分查找 返回数组中第一个大于等于target的位置,Solution类中的tar方法 注:传统的二分查
题目描述:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 方法1:动态规划,下面的代码写成了求最长连续递增子序列(dp数组设为了以i结尾的最长连续递增子序列),错误 class Solution { public: int lengthOfLIS(vector<int>&
题目描述:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] ,合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 方法1:按左端点排序后再合并 intervals[i] [0] <= in