leetcode376.摆动序列代码+解析 本题可以采用贪心和动态规划本题贪心主要就是找到尽可能有的峰值(相对比较简单,这里就不过多介绍了)动态规划思路:class Solution { public int wiggleMaxLength(int[] nums) { if(nums.length <= 1) return nums.length; //使用动态规划的思路 //我们考虑当前这个数要么是波峰,要么是波谷 int[][] dp = new...
使用Anaconda创建python3.6的环境使用opencv3.4.1.15的包 操作过程:Anaconda3配置opencv环境opencv环境安装 win+R打开命令行输入(创建opencv-python==3.4.1.15所需要的python3.6的环境) conda create -n opencv python=3.6 输入y 相当于创建opencv的虚拟环境 activate opencv 找到Anaconda所在安装位置 进入envs文件夹,这个目录存放的是我们anaconda创建的虚拟环境 找到
最小生成树MST的两种解法Java 一、prim算法(时间复杂度较之kruskal较高)通俗的解释就是:(1)从哪个点开始生成最小生成树都一样,最后的权值都是相同的(2)从哪个点开始,先标记这个点是访问过的,用visited数组表示所有节点的访问情况(3)访问节点开始都每个没访问结点的距离选取形成的边的权值最小值综合以上三点就是我们prim算法写代码实现的重要思路代码实现:package Prim;import java.util.Arrays;public class PrimAlgori.
韩顺平数据结构贪心算法 难点1.主要在为什么求交集的代码:tempSet.retainAll(allAreas)因为每次for循环结束后,只要maxKey不为空,allAreas是要变化的,所以一定会求交集2.判断条件:tempSet.size() >broadcasts.get(maxKey).size()其实就是贪心算法的核心代码,就是每次遍历都要比较就是一轮下来之后覆盖地区谁更多,多的就置换maxKey代码实现:(大家主要看注释就明白了)package Greedy;imp..
韩顺平数据结构线索二叉树笔记 线索二叉树介绍:(其实就是为了充分利用二叉树的左右指针域,构建联系)代码实现:1、线索化二叉树2、完成线索二叉树的遍历注意:因为在原有二叉树的基础上已经完成了线索化,所以不能够运用原来的方式进行遍历package Tree.ThreadedBinaryTree;public class ThreadedBinaryTreeDemo { public static void main(String[] args) { //测试一把中序线索二叉树的功...
韩顺平数据结构顺序二叉树笔记 注意考虑数组下标和二叉树的一一对应。顺序存储二叉树其实就是树与数组之间的转化,将数组这个顺序存储的结构转化成二叉树来遍历代码实现:要注意的是记得向左遍历向右遍历递归的时候注意判断是否数组越界package Tree;/** * 顺序存储二叉树 * 数组是顺序存储的,但是用二叉树的前序遍历完成对数组元素的遍历 * 其实就相当于用数组来存储二叉树的数据 */public class ArrBinaryTreeDemo { public static void m...
韩顺平数据结构二叉树遍历查找删除笔记 二叉树遍历查找删除笔记遍历:前序中序后序查找:前序中序后序图解思路:1)遍历2)查找:3)删除:代码实现:package Tree;/** * 二叉树的前序中序后序遍历 * 主要利用递归思想 */public class BinaryTreeDemo { public static void main(String[] args) { binaryTree binaryTree = new binaryTree(); ...
韩顺平数据结构哈希表笔记 哈希表相当于是缓冲区,不借助数据库完成数据库功能思路分析:相当于是做做出一个链表数组数组中的每一个元素都对应一条链表一条链表上有多个雇员的信息(通过取模法实现)----> 散列函数注意:在创造链表数组的时候也就是我们的哈希表时,通过构造器初始化时,不要忘记对数组中的每一个元素都要初始化,他不是简单的数组,数组中的每一个元素都对应了雇员链表代码实现:1、雇员信息类:/** * 雇员信息 */class Emp { public int id..
数据结构查找算法 1、二分查找1)二分查找精髓思想是从中间开始查找向左向右扫描,然后再递归查找到下标2)binarySearch是找到一个值就返回这个最先找到的下标的方法3)binarySearch是找到所有符合值的下标装进集合中返回package Search;import java.util.ArrayList;import java.util.List;/** * 二分查找 * 使用二分查找的前提是数组是有序的 */public class BinarySearch { pu
模拟多个线程取钱,取钱过程包括:账号减少金额和清点人民币(显示金额)两个步骤 1、创造账户类:(定义同步方法,用于判断是不是能够达到取钱的目的)package Chapter08.HomeWork3;public class Account { private int balance; private String name; public Account() { } public Account(int balance, String name) { this.balance = balance;
多线程打印1-26以及A-Z 打印呈现效果是:1A2B.........26Z这里使用两种方法实现结果:1、使用同步对象即锁对象package Chapter08.HomeWork2;public class Alter { public static void main(String[] args) { Object lock = new Object(); Thread number = new Thread(new Runnable() {
韩顺平数据结构排序算法笔记整理 冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 基数排序本章节一共介绍了7种常用排序方法,堆排序放在二叉树章节中再进行讲解本次笔记主要是记录代码实现部分,后面会更新比较难理解的排序的分析1、冒泡排序:package Sort;import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { //测试 int
韩顺平数据结构递归回溯八皇后问题 思路分析:图解:此处着重看说明,韩老师的思路可以用二维数组实现但是用一堆数组实现,因为下标对应的正是行数,value对应的是列值代码实现:主体在judge方法和check方法:1)judge方法:用来阐述八皇后游戏规则,不能在同一行同一列同一斜线其中判断同一斜线运用到小算法较为特殊:Math.abs(n-i) == Math.abs(array[n] - array[i]) 表示判断第n个皇后是否和第i皇后是否在同一斜线2)check方法:用来判断每一...
韩顺平数据结构递归回溯经典迷宫问题 package Recursion;/** * 迷宫案例(递归回溯) */public class Migong { public static void main(String[] args) { int[][] map = new int[8][7]; for (int i = 0; i < 7; i++) { map[0][i] = 1; map[7][i] = 1; }...