算法学习
文章平均质量分 61
记录算法学习中问题
mengXi_0718
前方的道路会有曲折,但也充满希望。
展开
-
图算法学习
LC 200. 岛屿数量 考频:107 我们首先明确一下岛屿问题中的网格结构是如何定义的,以方便我们后面的讨论。 网格问题是由 m×n 个小方格组成一个网格,每个小方格与其上下左右四个方格认为是相邻的,要在这样的网格上进行某种搜索。 岛屿问题是一类典型的网格问题。每个格子中的数字可能是 0 或者 1。我们把数字为 0 的格子看成海洋格子,数字为 1 的格子看成陆地格子,这样相邻的陆地格子就连接成一个岛屿。 class Solution { int n, m; int[] dx = {-原创 2021-10-02 22:38:35 · 118 阅读 · 0 评论 -
二分算法总结记录
二分的思想 最基本的思想: 我们最开始保证答案在一个区间里面,每一次把答案的备选范围缩小一半,当我们的区间长度缩小到1时(L = R),这个数一定是我们的答案。 75% 题目 与单调性有关; 95% 题目 存在两段性的性质。 找到一个分界点:前一段满足一个性质,后一段不满足这个性质。 二分流程 1. 确定二分的边界 2. 编写二分的代码框架 while (l < r) { int mid = (l + r) >> 1; } 3. 设计一个check(性质)函数.原创 2021-09-29 08:26:25 · 339 阅读 · 0 评论 -
回溯算法总结
回溯 - 就是要回复初始状态 搜索 != 递归 搜索: 可以用循环进行实现 也可以用回溯(递归)进行实现 顺序! 如何能够不重复,不遗漏的将所有情况枚举出来。 LC 17 组合问题: state = {""} for 每个数字 for c = 当前数字的所有备选字母 for s = state中的所有字符串 s += c 将s加入到新的集合中去 例: 23原创 2021-09-19 19:17:15 · 207 阅读 · 0 评论 -
八大排序算法总结----Java实现
//selectSort 每次将当前元素替换为后面最小的元素 public static void selectSort(int[] a){ int N = a.length; for (int i = 0; i < N; i++) { int min = i; for (int j = i+1; j < N; j++) { if(a[j]<a[min]) min=j;原创 2021-09-16 20:43:36 · 66 阅读 · 0 评论