一些排序算法的学习笔记
摘要:大纲: 冒泡排序 插入排序 选择排序 快速排序 归并排序 堆排序 一、冒泡排序 简述:把一个数组看成一个装水的桶,数组中的每个元素的值代表其质量。一开始这些元素被我用箩筐一把倒进桶里,在浮力影响下,这些元素根据自身的质量(值)自行沉浮。 值最大的沉入桶底,值最小的浮在桶顶,其它依次按自身值有序入座。
阅读全文
posted @
2022-12-26 19:06
DavidXu2014
阅读(55)
推荐(0)
求给定字符串的既是非空前缀又是非空后缀的最长子串
摘要:问题:求给定字符串的既是非空真前缀又是非空真后缀的最长子串(后面简称match串),示例如下: 真前缀表示不包括字符串自身的其余前缀子串,真后缀同理 输入str = “abbca",输出 match = ”a" 输入str = "GTGTG",输出 match = "GTG" 输入"a", 输出“”
阅读全文
posted @
2022-08-08 20:59
DavidXu2014
阅读(81)
推荐(0)
Leecode剑指 Offer 07. 重建二叉树
摘要:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7 限
阅读全文
posted @
2021-03-02 11:46
DavidXu2014
阅读(68)
推荐(0)
普通克里金算法学习笔记
摘要:简介: Kriging是一组统计技术,用来将随机场的值(例如,地形的高程,z,作为地理位置的函数)从其在附近位置的观测值中插值到一个未观测到的位置。 令\((x,y)\)为某一空间数据点的坐标,\(Z(x,y)\)表示其值,对于某个点\((x_0,y_0)\)的值记为\(z_0=Z(x_0, y_0
阅读全文
posted @
2021-02-11 15:06
DavidXu2014
阅读(4377)
推荐(0)
参考ArcMap实现加强版IDW(Inverse Distance Weighting,反距离权重)算法
摘要:1、简述 反距离权重算法(IDW)根据离散点之间的距离和数据点的权重值来预测未知点,距离预测点俞近的点影响愈大,即距离的倒数较大,故而叫反距离。 公式: Z表示数据的权重, diP 表示第i个已知点距离预测点P的距离。 图解说明 DISTANCE VALUE A 350 12 B 750 10 C
阅读全文
posted @
2020-12-24 13:37
DavidXu2014
阅读(2014)
推荐(0)
求解整数数组的连续子数组的最大和算法学习笔记
摘要:给定一个整数数组,找出总和最大的连续数列,并返回总和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 一、暴力求解 暴力解法是最容易想到的。对于连续的子序列,我们需要枚举子序列的上界(i)和下界(j),然后对子序
阅读全文
posted @
2020-10-11 10:39
DavidXu2014
阅读(823)
推荐(0)
双线性插值算法
摘要:1、介绍双线性插值算法前先讲下线性插值(Linear Interpolate): 在数学中,线性插值是一种曲线拟合方法,利用线性多项式在已知数据点的离散集合范围内构造新的数据点。 两个已知点之间的线性插值: 已知两点由坐标(x0,y0)和(x1,y1)给出,线性插值就是两点之间的直线。对于区间(x0
阅读全文
posted @
2020-10-03 21:56
DavidXu2014
阅读(9240)
推荐(0)
(LeetCode一刷)动态规划-跳跃游戏问题
摘要:注:个人算法比较菜,由于是第一遍刷题,代码质量可能都不好,这里暂时做个刷题记录:)。 问题描述: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4]输出: true解释:
阅读全文
posted @
2020-08-23 15:58
DavidXu2014
阅读(447)
推荐(0)
(LeetCode一刷)二叉树的锯齿形层次遍历
摘要:注:个人算法比较菜,由于是第一遍刷题,代码质量可能都不好,这里暂时做个刷题记录:)。 题目: 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如:给定二叉树 [3,9,20,null,null,15,7], 作者:力扣 (L
阅读全文
posted @
2020-08-23 10:08
DavidXu2014
阅读(151)
推荐(0)
(LeetCode一刷)层次遍历构造二叉树
摘要:注:个人算法比较菜,由于是第一遍刷题,代码质量可能都不好,这里暂时做个刷题记录:)。 二叉树节点函数定义: /** * Definition for a binary tree node. */ function TreeNode(val){ this.val = val; this.left =
阅读全文
posted @
2020-08-21 09:07
DavidXu2014
阅读(890)
推荐(0)
二分排序java实现
摘要:1.什么是二分排序: 二分排序是指利用二分法的思想对插入排序进行改进的一种插入排序算法,不同于二叉排序,可以利用数组的特点快速定位指定索引的元素; 算法思想:二分法插入排序是在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,如果小,则对前半再进行折半,否则对后半进行折半,
阅读全文
posted @
2018-06-15 22:16
DavidXu2014
阅读(1464)
推荐(1)
利用层次遍历原理构建二叉树
摘要:层次遍历构建二叉树: 1.定义二叉树节点: 1 function TreeNode(val){ 2 this.val = val; 3 this.left = this.right = null; 4 } 2.层次遍历构建二叉树: 1 function createTree(arr){ 2 if(!
阅读全文
posted @
2018-05-13 09:44
DavidXu2014
阅读(5570)
推荐(1)
利用字符串和十进制逢10进位的特性实现大数据的算术运算。(加法案例)
摘要:java中普通的数据类型int,long等不支持大数据间的算术运算,会出现丢失精度的问题,甚至无法用现有数据类型表示。 例如:对这两个数做加法运算:1243543534646546546465465465464654+32423985348957348957348957348957348574=?
阅读全文
posted @
2015-08-16 11:55
DavidXu2014
数据结构复习之链表———约瑟夫问题案例
摘要:* 约瑟芬问题,俗称丢手帕问题: * 有n个人围成一圈,从指定的第一个人开始从1依次报数, * 数到m的那个人出列,接着下一个人从1开始接着报数, * 直到最后只剩下一个人出列,问最后出列的是第几个人? 1.单链表解决: 2.循环链表解决:
阅读全文
posted @
2015-08-09 14:28
DavidXu2014