<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>折叠菜单</title><script type="text/javascript" src="js/jquery-2.1.0.js"></script><script type="text/javascript" src="js/foldMenu.js" ></script><style type="text/css">* {padding: 0;margin: 0;}#FoldingMenuBar {margin: 200px;;}li {list-style: none;}.left {float: left;}.TotalMenu {float: left;}.TotalMenu li{height: auto;overflow:auto;}.menuBody{...
K近邻算法思想非常简单,总结起来就是根据某种距离度量检测未知数据与已知数据的距离,统计其中距离最近的k个已知数据的类别,以多数投票的形式确定未知数据的类别。 一直想自己实现knn的java实现,但限于自己的编程水平,java刚刚入门,所以就广泛搜索网上以实现的java代码来研习。下面这个简单的knn算法的java实现是在这篇博客中找到的:http://blog.csdn.net/luowen3405/article/details/6278764 下面给出我对代码的注释,如果有...
1package sort;2 3import java.util.ArrayList;4import java.util.Random;5 6publicclass Sort7{8 9publicstatic Random r = new Random();10 11// public static transient ArrayList<String> arr = new12// ArrayList<String>();//动态 transient13// static int n;14// public static int a[] = new int [n];//静态的数组,n也必须要静态的才能行15 16// static long l = 88888l;17// static float f = 0.12f;18// 19/** 20 ...
一、蚁群算法 蚁群算法是一种用来寻找优化路径的概率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。这种算法具有分布计算、信息正反馈和启发式搜索的特征,本质上是进化算法中的一种启发式全局优化算法。将蚁群算法应用于解决优化问题的基本思路为:用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。路径较短的蚂蚁释放的信息素...
1、题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
2、算法思想
① 遍历小树是否是大树的一个子树,首先得从大树和小数的根节点进行遍历
② 两个方面,遍历大树和判断大数和子树的结点
具体看代码吧,注释详细!
3、代码实现
public class Solution { public static boolean HasSubtree(TreeNode root1, TreeNode root2) {boolean result = false;//当Tree1和Tree...
原题链接:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/
解题思路:
参考了『手画图解』剖析DFS、BFS解法 | 二叉树的序列化与反序列化。该题实际上并没有严格的要求将二叉树序列化为[1,2,3,null,null,4,5]的形式,只要能够输出为1,2,X,X,3,4,X,X,5,X,X(X表示节点为null),并且重新反序列化为二叉树即可。序列化: 使用BFS遍历每个节点,将遍历到的值都存在数组serialized中。如果遇到节点为空,则将...
原题链接:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/
解题思路:
参考了『手画图解』剖析DFS、BFS解法 | 二叉树的序列化与反序列化。该题实际上并没有严格的要求将二叉树序列化为[1,2,3,null,null,4,5]的形式,只要能够输出为1,2,X,X,3,4,X,X,5,X,X(X表示节点为null),并且重新反序列化为二叉树即可。序列化: 使用DFS遍历每个节点。如果遇到节点为空,则返回X。如果节点有值,则将其和左右子树...
文章目录
一、冒泡排序二、插入排序三、选择排序四、希尔排序五、合并排序六、快速排序七、基数排序八、堆排序九、各排序算法复杂度总结一、冒泡排序
定义 冒泡排序是指重复地遍历待排序的元素,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。每次遍历都能使得一个位置的元素最终有序,遍历进行到没有相邻元素需要交换时结束。代码实现public int[] void bubbleSort(int arr[]){boolean flag...
原题连接:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/
解题思路:
参考了Simple O(n) without map。我们可以用如下代码,打印出递归经过的所有路径:
var buildTree = function (preorder, inorder) {let preorderIndex = 0;let inorderIndex = 0;let preMap = new Map();let preRealMap = new Map();function build(direction, stop) {const item = {inorderIndex, stop: ino...
题目介绍: 版本一:
package data_structure_curriculum_design.experiment3_24point_poker_game.version1;import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image...
试题 算法训练 阶乘
蓝桥杯试题解答汇总链接
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是...
leecode算法《104. 二叉树的最大深度》详解有注释,简单明了。
原题内容
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
3/
9 20
/
15 7
返回它的最大深度 3 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree
著作权归领扣网络所有。商业转...
leecode算法《242. 有效的字母异位词》详解有注释,简单明了。
原题内容
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:
输入: s = “rat”, t = “car”
输出: false
说明:
你可以假设字符串只包含小写字母。
进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
来源:力扣(LeetCode)
链接:https:...
背景介绍
1、SHA
安全散列算法SHA (Secure Hash Algorithm)是美国国家标准和技术局发布的国家标准FIPS PUB 180-1,一般称为SHA-1。其对长度不超过264二进制位的消息产生160位的消息摘要输出,按512比特块处理其输入。
SHA是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用。
该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小...
要点分治,把数组二分成2部分,分别对这两部分排序,合并这两部分
合并函数借助新的内存空间内存优化合并函数不借助新的内存,使用插入排序完成合并/*使用插入排序优化合并方法不用创建新的数组,减少内存使用*/public void Merge2(int[] array, int from, int mid, int to){for (var i = mid + 1; i <= to; i++){var temp = array[i];for (var j = i - 1; j >= from; j--){if (temp < array[j]){array[j + 1] = array[j];array[j]...