算法
文章平均质量分 59
CodingLemon.
blog:http://www.codinglemon.cn/
展开
-
200. 岛屿数量
1.题目描述给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0”,“0”],[“0”,“0”,“0”,“0”,“0”]]输出:1示例 2:输入:grid = [[“1原创 2021-09-22 15:10:43 · 44 阅读 · 0 评论 -
深度优先搜索(DFS)----LeetCode刷题篇
欢迎访问我的blog http://www.codinglemon.cn/0. 深度优先搜索(DFS)先简单了解一下DFS,其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只访问一次。DFS思修基于递归思想,通过递归的形式来缩小问题规模,把一件事分割成若干个相同的小事,逐步完成。深度优先搜索的步骤分为 1.递归下去 2.回溯上来。顾名思义,深度优先,则是以深度为准则,先一条路走到底,直到达到目标。这里称之为递归下去。否则既没有达到目标又无路可走了,那么则退回到上一步的状.原创 2021-08-31 16:23:56 · 952 阅读 · 0 评论 -
算法你不懂?可能你都见不到美女面试官的面zz
立个flag,8月20日前整理出所有面试常见问题,包括有:Java基础、JVM、多线程、Spring、Redis、MySQL、Zookeeper、Dubbo、RokectMQ、分布式锁、算法。14. 算法篇文章目录14. 算法篇14.1 贪心算法14.2 分治算法14.3 动态规划14.4 快排14.5 堆排14.6 二叉树14.6.1 遍历二叉树14.6.2 比较两个树14.7 广度优先遍历(BFS)14.8 深度优先遍历(DFS)14.9 说在最后终于到最后一篇了,也算没有打脸,哈哈,算法篇.原创 2021-08-19 15:31:34 · 91 阅读 · 0 评论 -
面试题 10.11. 峰与谷
面试题 10.11. 峰与谷1. 题目描述在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 4, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。示例:输入: [5, 3, 1, 2, 3]输出: [5, 1, 3, 2, 3]提示:nums.length <= 100002. 解题代码基于波峰波谷的原理,类似于y=sinx的函数,那么只要原创 2021-03-17 20:33:01 · 136 阅读 · 0 评论 -
面试题 16.02. 单词频率
欢迎访问我的blog http://www.codinglemon.cn/面试题 16.02. 单词频率1. 题目描述设计一个方法,找出任意指定单词在一本书中的出现频率。你的实现应该支持如下操作:WordsFrequency(book)构造函数,参数为字符串数组构成的一本书get(word)查询指定单词在书中出现的频率示例:WordsFrequency wordsFrequency = new WordsFrequency({"i", "have", "an", "apple", ".原创 2021-03-17 19:37:45 · 134 阅读 · 0 评论 -
面试题 01.08. 零矩阵
欢迎访问我的blog http://www.codinglemon.cn/面试题 01.08. 零矩阵1.题目描述编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,.原创 2021-03-17 17:13:14 · 91 阅读 · 0 评论 -
消失的数字
欢迎访问我的blog http://www.codinglemon.cn/面试题 17.04. 消失的数字1. 题目描述数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?示例 1:输入:[3,0,1]输出:2示例 2:输入:[9,6,4,2,3,5,7,0,1]输出:82. 解题代码2.1 类暴力破解我首先想到的方法是新创建一个boolean类型的数组tempArr,且数组长度为传入nums数组的长度再加1(.原创 2021-03-16 20:49:26 · 1166 阅读 · 6 评论 -
交替打印FooBar
欢迎访问我的blog http://www.codinglemon.cn/1115. 交替打印FooBar1. 题目描述我们提供一个类:class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { print("bar").原创 2021-03-16 20:18:55 · 98 阅读 · 0 评论 -
按序打印
欢迎访问我的blog http://www.codinglemon.cn/好久没有写leetCode的算法题了,先写一个简单的试试水。1114. 按序打印1. 题目描述我们提供了一个类:public class Foo { public void first() { print("first"); } public void second() { print("second"); } public void third() { print("third"); }}三个不同的线.原创 2021-03-16 20:04:33 · 158 阅读 · 0 评论 -
十种常见的排序算法
欢迎访问博主的blog:coding lemon’s blog介绍十种常见排序算法可以分为两大类:比较类排序: 通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序: 不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。1. 冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作.原创 2020-12-21 21:22:17 · 5560 阅读 · 0 评论