力扣
文章平均质量分 88
乒乒乓乓丫
转行咯
展开
-
常用算法模板汇总
1.排序① 冒泡每次排序从首元素(图里为左)开始,相邻元素比较,较大者排后,直至最大数排到队尾。然后对未排序部分重复操作。② 快排原创 2021-06-16 10:51:31 · 555 阅读 · 0 评论 -
力扣刷题记录 (七)动态规划(五)子序列系列
① 题号300.最长递增子序列给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1: 输入:nums = [10,9,2,5,3,7,101,18] 输出:4 解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2: 输入:nums = [0,1,0,3,2,3] 输出:4示例 3: 输入:num...原创 2021-06-15 14:49:15 · 661 阅读 · 0 评论 -
力扣刷题记录 (七)动态规划(四)股票系列
① 题号121. 买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6...原创 2021-06-14 23:04:21 · 526 阅读 · 1 评论 -
力扣刷题记录 (七)动态规划(三)打家劫舍
① 题号198.打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1: 输入:[1,2,3,1] 输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。示...原创 2021-06-14 23:02:33 · 243 阅读 · 0 评论 -
力扣刷题记录 (七)动态规划(二)背包问题
1.背包基础01 背包有N件物品和一个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。举例1背包最大重量为4。物品为:问背包能背的物品最大价值是多少?答:...原创 2021-06-13 23:07:28 · 1521 阅读 · 0 评论 -
力扣刷题记录 (七)动态规划(一)基础题目
1.基础知识① dp定义动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。例如:有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。动态规划中dp[j]是由dp[j-weight[i]]推导出来原创 2021-06-13 07:12:36 · 616 阅读 · 0 评论 -
力扣刷题记录 (六)二叉树
1.原创 2021-06-09 23:30:28 · 343 阅读 · 0 评论 -
力扣刷题记录 (五)栈与队列
1.工作上一定没人这么搞,但是考察对栈、队列理解程度的好题① 题号232.用栈实现队列使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。 pop() – 从队列首部移除元素。 peek() – 返回队列首部的元素。 empty() – 返回队列是否为空。解析:这是一道模拟题,不涉及到具体算法,考察的就是对栈和队列的掌握程度。使用栈来模式队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈一个输入栈,一个输出栈,这里要注意输入栈和输出栈的关系。在push数据的时候,原创 2021-06-09 14:20:08 · 205 阅读 · 1 评论 -
力扣刷题记录 (四)字符串
打基础的时候,不要太迷恋于库函数。① 题号344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”] 示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”] 输.原创 2021-06-08 19:04:59 · 206 阅读 · 0 评论 -
力扣刷题记录 (三)哈希表
1原创 2021-06-07 16:48:11 · 188 阅读 · 0 评论 -
力扣刷题记录 (二)链表
1.原创 2021-05-31 14:10:29 · 197 阅读 · 0 评论 -
力扣刷题记录 (一)数组
解题思路来自https://github.com/youngyangyang04/leetcode-master1. 二分查找①给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4示例2: 输入: nums = [-1,0...原创 2021-05-15 23:29:48 · 442 阅读 · 0 评论