
LeetCode
文章平均质量分 61
一朵花花
女孩子也可以好好敲代码丫
展开
-
动态规划 < 第 3 天 >
题目1.求路径总数分析代码实现:2.最小路径和分析代码实现:1.求路径总数题目:一个机器人在 m×n 大小的地图的左上角(起点)机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)可以有多少种不同的路径从起点走到终点 ?.备注:m 和 n 小于等于100,并保证计算结果在 int 范围内数据范围:0 < n,m ≤ 100,保证计算结果在32位整型范围内要求:空间复杂度 O(nm),时间复杂度 O(nm)O(nm).示例:输入:2,1返回值:1.输入:2,2原创 2021-12-08 14:38:52 · 552 阅读 · 1 评论 -
动态规划<第 2 天>
三角矩阵题目:给出一个三角形,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字例如:给出的三角形如下:[[2][3,4][6,5,7][4,1,8,3]]最小的从顶部到底部的路径和是2 + 3 + 5 + 1 = 11注意:如果你能只用 O(N) 的额外空间来完成这项工作的话,就可以得到附加分,其中 N 是三角形的总行数思路:动规题目,我们需要分析出状态,状态转移方程,初始状态和返回结果方式① 自上向下解决代码实现:public int原创 2021-12-07 13:59:33 · 151 阅读 · 0 评论 -
动态规划<第 1 天>
前言:动态规划,简单来说,就是大事化小,小事化无的艺术~动态规划具备特点:把原来的问题分解成了几个相似的子问题所有的子问题都只需要解决一次储存子问题的解动态规划的本质:是对问题状态的定义和状态转移方程的定义(状态以及状态之间的递归关系)动态规划一般从以下4个角度考虑:1.状态定义(要求:定义的状态一定要形成递归关系)2.状态间的转移方程定义3.状态的初始化4.返回结果适用场景:最大值 / 最小值,可不可行,是不是,方案个数1.斐波那契数列递归解法:public int Fi原创 2021-12-06 12:44:43 · 467 阅读 · 6 评论 -
两数相加【力扣】
题目: 在线OJ思考分析:首先,创建一个newHead,表示目标链表我们可以看作两个链表长度一样,在短的链表末尾补0创建变量 carry 记录进位值,遍历两个链表,逐位计算和 sum = num1 + num2 + carry注意: 最后要判断 carry > 0 ? 若还有进位值,则要将其附加在链表结尾代码实现:public ListNode addTwoNumbers2(ListNode l1, ListNode l2) { ListNode newHead = new L原创 2021-10-17 08:30:00 · 176 阅读 · 4 评论 -
栈和队列相关面试题
前言:上篇文章介绍了栈和队列及其相关操作,本篇通过几个面试题,来进一步掌握栈和队列~目录括号匹配问题用队列实现栈用栈实现队列实现一个最小栈设计一个循环队列括号匹配问题题目:在线OJ用队列实现栈题目:在线OJ用栈实现队列题目:在线OJ实现一个最小栈题目:在线OJ设计一个循环队列题目: 在线OJ...原创 2021-10-03 14:51:29 · 867 阅读 · 43 评论 -
118.杨辉三角【LeetCode】
题目杨辉三角给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和.示例1输入:numRows = 5输出: [ [1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1] ]示例2输入:numRows = 1输出: [ [1] ]动图演示:思考:重点在于找规律!!第1行固定,一个1第2行固定,两个1第 i 行,收尾元素 固定为1第 i 行,有 i 个元素对于第 i 行来说原创 2021-09-26 22:02:57 · 260 阅读 · 22 评论 -
数组练习题:两数之和、三数之和、四数之和
两数之和三数之和四数之和最接近的三数之和两数之和题目:暴力求解: 直接遍历数组,依次求和进行比较即可代码实现:public int[] twoSum(int[] nums, int target){ for (int i = 0; i < nums.length - 1; i++) { for (int j = i + 1; j < nums.length; j++) { if(nums[i] + nums[j] == target).原创 2021-09-11 23:14:26 · 761 阅读 · 21 评论 -
链表常见面试题( 建议收藏!!)
链表面试题????1.删除链表中等于给定值 val 的所有节点2.二级目录3.三级目录1.删除链表中等于给定值 val 的所有节点题目:题目链接: https://leetcode-cn.com/problems/remove-linked-list-elements/.思考:用tmp记录当前节点,若tmp 的下一个节点不为空且下一个节点的节点值等于给定的 val,则需要删除tmp的下一个节点2.二级目录3.三级目录...原创 2021-08-31 21:54:30 · 3983 阅读 · 41 评论 -
LeetCode 191.位1的个数
欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片原创 2021-05-12 00:08:43 · 272 阅读 · 8 评论 -
LeetCode 258.各位相加
题目题目链接: https://leetcode-cn.com/problems/add-digits/思路分析:递归方法:可以分两种情况讨论,一种num<10,则可直接返回num值;第二种情况num>10,则需要将每一位的数字相加,得到ret,再对ret进行讨论,若ret>9,在调用一次函数,如此循环即可。循环方法: 各位之和为sum,第一次 的时候 sum传入个位数的值,然后位数依次-1,依次将十位 百位移到个位,再与sum相加求得最后的结果,需要一个辅助函数来判断num原创 2021-04-23 16:11:32 · 291 阅读 · 2 评论 -
LeetCode面试题08.05.递归乘法
题目题目链接:https://leetcode-cn.com/problems/recursive-mulitply-lcci/思路分析:乘法实质就是多个相同的数相加,例如:3x4 等价于 3+3+3+3(4个3相加)即x*y的话,就是y个x相加函数代码如下:int Mul(int x, int y) { int result = 0; if (y > 1) { result = Mul(x, y-1)+ x ; } else { result = x; } retur原创 2021-04-22 23:48:48 · 442 阅读 · 0 评论