刷题
文章平均质量分 56
wj_秦桑低绿枝
我从负无穷来,前往正无穷去。
展开
-
leetcode刷题记录(面试top题-数组-简单)2020.8.12
189.旋转数组 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 我的思路就是暴力遍历 用循环 数组尾部弹出的放到数组头部去。看了一下题解,发现还有两种比较妙的方式,借用splice的删除和插入。 方法一:暴力遍历原创 2020-08-12 22:38:12 · 151 阅读 · 0 评论 -
leetcode 53 最大子序和(简单-数组-面试top)可用来理解贪心和动态规划
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 这道题很适合入门动态规划,故此记录一下。 方法一:贪心算法,sum>0就继续加,sum<=0就重置到当前数组元素,中间再用一个max记录最大值。 /** * @param {number[]} nums * @return {number} */ va原创 2020-07-28 00:25:08 · 93 阅读 · 0 评论 -
关于在数组里找重复元素和计算数组个数等方法总结
今天刷了两道leetcode简单题,都是数组相关,记录一些规律。 数组里找重复元素: 1.使用去重的方法来判断是否有重复元素。 ①new Set(arr) ②Array.from(new Set(arr)) 2.排序 通过arr.sort()之后,判断有无相邻元素相等即可 3.hash var set=new Set(); set.has(nums[i]);//判断是否包含 set.add(nums[i]);//添加 set.delete(nums[i]);//删除 计算数组个数: 1.排序 排序位于中位原创 2020-06-30 23:59:26 · 454 阅读 · 0 评论 -
leetcode刷题记录(面试top题-数组-简单)2020.6.27
1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 思路:一开始我的思路就是两个循环找就行了,但是一直超时。估计是想让我想想更好的算法才能通过,就开始想把循环减少,使用nums[原创 2020-06-27 12:36:07 · 202 阅读 · 0 评论 -
leetcode刷题记录(面试top题-数组-简单)2020.6.22
122.买卖股票的最佳时机2 题目: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时原创 2020-06-22 23:29:33 · 175 阅读 · 2 评论