![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法相关
算法学习中遇到的值得记录的笔记
难过的风景
君子慎独 不欺暗室
展开
-
LeetCode.154 寻找旋转排序数组中的最小值 II(经典二分查找的变种)
原题https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/思路二分查找贴一下官方题解一定要能看懂下边的三张图注意:第三张图可能需要仔细推敲一下了!本题是建立在上一题的基础之上题解package cn.codemao.botmao.admin;/** * @version 1.0 * @author: zhangkun@codemao.cn * @description: * @c原创 2021-04-09 16:42:13 · 103 阅读 · 0 评论 -
LeetCode.153 寻找旋转排序数组中的最小值(经典二分查找的变种)
原题https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/思路二分查找贴一下官方题解一定要能看懂下边的两张图题解package cn.codemao.botmao.admin;/** * @author: zhangkun@codemao.cn * @description: * @create: 2021-04-08 14:42 * @Version 1.0 **/public cla原创 2021-04-08 16:22:56 · 237 阅读 · 2 评论 -
LeetCode.74 搜索二维矩阵(经典二分查找问题模板)
原题https://leetcode-cn.com/problems/search-a-2d-matrix/思路一次二分查找,判断mid所在的横纵位置i=mid/col,j=mid%col题解package com.leetcode.code;/** * @Description: * @ClassName: Code74 * @Author: ZK * @Date: 2021/3/30 22:14 * @Version: 1.0 */public class Code74 {原创 2021-03-31 00:07:14 · 87 阅读 · 0 评论 -
LeetCode.90 子集 II(经典递归回溯问题模板)
原题https://leetcode-cn.com/problems/subsets-ii/思路经典的回溯问题,回溯题的模板在此给两个结果,可以深入体会下递归回溯的过程,就容易理解代码了,代码中也有详细的注视便于理解题解package com.leetcode.code;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * @Description: * @ClassNa原创 2021-03-31 23:20:47 · 98 阅读 · 1 评论 -
赫夫曼编码
赫夫曼编码1.基本介绍(1)赫夫曼编码也翻译为哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,属于一种程序算法。(2)赫夫曼编码是赫夫曼树在电讯通信中的经典应用之一。(3)赫夫曼编码广泛的应用与数据文件压缩,其压缩率通常在20%~90%之间。(4)赫夫曼编码是可变长编码(VLC)的一种,Huffman于1952年提出一种编码方式,称之为最佳编码。2.原理剖析2.1.定长编码通讯领域中信息的处理方式1:定长编码i like like like java do y原创 2021-02-06 02:15:16 · 713 阅读 · 6 评论 -
8皇后问题-java
经典的8皇后问题想必大家都知道。八皇后问题(英文:Eight queens),是由国际西洋棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。其他的不啰嗦了,直接上代码package com.zk.datastruct.recursion;/** * @Description: * @ClassName: Queue8 * @Author:原创 2021-01-30 16:53:08 · 104 阅读 · 0 评论 -
堆排序
堆排序1.堆排序的基本介绍(1)堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏、最好、平均时间复杂度均为O(nlogn),它也是不稳定排序。(2)堆是具有一定性质的完全二叉树。(3)大顶堆:每个节点的值都大于或等于其左右孩子节点的值。(4)小顶堆:每个节点的值都小于或等于其左右孩子节点的值。注意: 没有要求节点的左孩子和右孩子的值的大小关系。大顶堆举例说明小顶堆举例说明(5)一般升序采用大顶堆,降序采用小顶堆。2.堆排序的思想(1)将待排序序列构造原创 2021-01-28 16:44:04 · 143 阅读 · 0 评论 -
算法的时间复杂度排序
算法的时间复杂度排序O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(nk) < O(2n)注意:这里的logn 均为以2为底原创 2020-12-24 22:02:01 · 1085 阅读 · 0 评论 -
求 最大公约数和最小公倍数
求 最大公约数和最小公倍数最大公约数 public static int gcd(int a,int b){ int n = 0; while(b!=0){ n = a % b; a = b; b = n; } return a; }最小公倍数 public static int lcm(int a,int b){ return原创 2021-01-08 16:32:40 · 69 阅读 · 0 评论