
Leetcode每日刷题+分析
文章平均质量分 79
Nevey-Chen
这个作者很懒,什么都没留下…
展开
-
深度优先搜索、广度优先搜索
搜索 - 遍历 每个节点都访问一次 每个节点仅访问一次 对于结点的访问顺序不限 -深度优先:DFS -广度优先:BFS 深度优先搜索 (DFS) 深度优先遍历顺序: 解释:即先从头走到尾。尾部走不动了再退回上一个节点,看是否有分支,如有分支走分支… 通过例题分析: 本题注意的要点: 可以自由的在房间之间来回走动 代码如下: int num; //num 用于记录一共遍历了多少房间 void dfs(int** rooms, int* roomsColSize,原创 2020-08-31 17:02:13 · 170 阅读 · 0 评论 -
LeetCode解题思路(合集)陆续更新......
LeetCode解题思想 算法解题思路汇总 文章目录LeetCode解题思想前言一、循环的巧用解题1.将每个元素替换成右侧最大的元素。——1299 前言 该文章用于记录LeetCode刷题中有意思的解题思路 。 会陆续更新… 一、循环的巧用解题 1.将每个元素替换成右侧最大的元素。——1299 限制条件: 1 <= arr.length <= 10^4 1 <= arr[i] <= 10^5 解题代码如下: int* replaceElements(int* arr原创 2020-08-23 11:08:20 · 674 阅读 · 0 评论 -
递归算法(练习习题)
递归:自己调用自己 递归模板: def recursion(level, param1, param2, ....): #第一部分:递归终止条件 if level > MAX_LEVEL: process_result return #该层所需执行的操作 process(...) #下探到下一层 self.recursuion(level+1, p1,...) #其他操作 总结: 第一部分:递归终止条件。 第二部分:该层所需解决的程序。 第三部分:下探到下一层。 例题: 题目原创 2020-08-16 21:14:47 · 2326 阅读 · 0 评论 -
LeetCode 盛最多水的容器&爬楼梯 (day6 && day7)
算法做题方法: 题目懵逼时思考: 1. 想暴力破解的方法 2. 列举去情况由易到难 3. 泛化,找规律(找重复) 第一题:盛最多水的容器 题目描述: 暴力破解 : 即遍历从头到尾所有情况找出最大值 int min(int a, int b) { //寻找两根柱子中最小的那一根 if(a > b) { return b; }else return a; } int maxArea(int* height, int heightSize){ int sum,原创 2020-07-21 19:55:59 · 216 阅读 · 0 评论 -
LeetCode 283零移动(C实现) (day 5)
问题描述: 题目分析及思路: 分析:将题目中所有非零数顺序不变的排列,所有零移到末尾。 解题:利用两个数分别指示数组的位置,一个用于判断所示位置是否为零,另一个将非零的数一次从头排入。并记录该数组零的总数,最后循环将零重新写入。 代码实现:(第一次) void moveZeroes(int* nums, int numsSize){ int i; //i为判断所示位置是否为零 int j = 0,count_0 = 0; //j为从头排入,count_0记录零的总数原创 2020-07-19 10:55:40 · 141 阅读 · 0 评论 -
LeetCode 拥有最多糖果的孩子 C语言 (day 4)
原题如下: 题目分析: 题目要求判断这群孩子中在原有糖数的基础上加上额外的糖数,成为拥有糖果最多的可能性。 题解: 1.寻找出这群孩子中拥有糖果最多的个数。 2.最多的减去额外的差值。 3.判断这个差值和孩子原有的糖果数,只要原有的糖果数大于等于(2)中的差值,即可成为最多。 bool* kidsWithCandies(int* candies, int candiesSize, int extraCandies, int* returnSize){ *returnSize = candiesSi原创 2020-07-14 15:28:29 · 209 阅读 · 0 评论 -
LeetCode1470. 重新排列数组 (day 3)
原题如下:原创 2020-07-12 15:18:42 · 183 阅读 · 0 评论 -
Leetcode一维数组的动态和 (day 2)
原题目如下:原创 2020-07-11 02:00:13 · 157 阅读 · 0 评论 -
Leetcode数组中两元素的最大乘积(day 1)
原题如下: 第一次想法:运用循环嵌套将数组中元素两两相乘求初最大值。 代码如下: int maxProduct(int* nums, int numsSize){ int i, j, sum, sum1 = 0; for (i = 0;i < numsSize;i++) { for(j = i + 1; j < numsSize; j++) { //j = i + 1为了防止i,为相同位置的数。原创 2020-07-10 11:11:20 · 312 阅读 · 0 评论