
算法
文章平均质量分 87
fct2001140269
大数据架构、地理信息系统
展开
-
100亿数据找出最大的1000个数字的4种方法
面试题解决的找出最大M个数的方法转载 2022-06-04 23:14:18 · 2054 阅读 · 0 评论 -
LRU 缓存淘汰算法
如何实现 LRU 缓存机制1. 参考链接:如何实现 LRU 缓存机制 https://mp.weixin.qq.com/s?__biz=MzAxODQxMDM0Mw==&mid=2247484500&idx=1&sn=83f4df1253f597898b2f74ea9dca9fd9&chksm=9bd7fa5caca0734ad182ba67651882647a71264938eaa98e49c5ff43369b807a094ad16efcd4&scene=21#原创 2020-10-18 15:20:07 · 478 阅读 · 4 评论 -
二叉树知识点
二叉树知识点1.1二叉树的前序、中序、后序遍历二叉树的前序、中序、后序遍历(递归与非递归)/**前序:递归方式*/public void preOrder( TreeNode root){ if(root == null) return; System.out.println(root.val); preOrder(root.left); preOrder(root.right); }/**前序:非递归方式*结果放入ArrayList中*/public原创 2020-09-20 23:47:29 · 152 阅读 · 0 评论 -
手撕 排序算法
归并排序//归并排序--采用分治法,先分后治,递归的解决问题/***分:将大问题拆分为小问题。具体来说,将数组氛围左右两个数组,然后递归的调用治理* 治:采用合并有序数组的方式*/public void mergeSort(int[] arr, int left, int right){ if(left < right){ int mid = left +right; mergeSort(arr, left,mid); mergeSo原创 2020-09-20 21:54:13 · 540 阅读 · 1 评论 -
查找队列中最新的n个记录
超找最新的n个记录 问题描述:/**表示一个用户行为,包含type,timestamp, info信息*/interface Action {public String getType();public long getTimestamp();public String getInfo();}/**表示一个用户的行为历史*/interface ActionHi...原创 2019-02-21 17:31:28 · 283 阅读 · 0 评论 -
在循环左移后的有序且不重复的数组中搜索目标值x
二分查找java代码实现:package suanfa;public class Search { public static void main(String[] args) { int[] arr = {1,2,3,4,5,6}; int key = 6; int index = binarySearch(arr,0,arr....原创 2019-02-18 00:15:46 · 343 阅读 · 0 评论 -
求一个二叉树中两个节点的最近公共父节点
对树的考察在于使用递归方法(使用递归的方式)package suanfa;/**求一个二叉树中两个节点的最近公共父节点*/public class LowestCommonAncestor { public static void main(String[] args) { // TODO Auto-generated method stub// TreeNode root ...原创 2019-02-19 23:53:59 · 418 阅读 · 0 评论 -
算法:不同税率计算的个税问题
算法:不同税率计算的个税问题1.一直银行利率,低于1000元,不用交税,超过的部分按照如下规则缴费.例如1750元工资需要缴纳个人所得税是:taxes = 1000 * 0% + 500* 1% + 250 * 2%;或者若为2750元工资时候,taxes = 1000 * 0% + 500* 1% +500 * 2% + 500* 3%+250* 3%;输入:工资额输出:需要缴...原创 2019-03-09 00:29:25 · 623 阅读 · 0 评论 -
排序算法之:归并排序
排序算法之:归并排序归并排序的思想:归并的思想是分治法的思想,首先对已知数组自上而下递归地分割程序两份,直达最后不能再分为止,然后对已有的子数组(两个部分)比较大小后自下而上合并为一个数组,然后将合并的数组拷贝到原来的数组即可;空间复杂度为:O(n),是因为合并的过程中需要一个辅助的数组;时间复杂度为:O(nlogn),是一种稳定的排序算法;package suanfa.mysort;...原创 2019-04-23 13:26:07 · 160 阅读 · 0 评论 -
常见算法问题总结
1.给定二维数组,其中的元素是a-z的26个小写字母,例如如下int[3][3] a = {{b,a,c},{e,f,d},{g,h,i}};任意给定字符串str=“acg”,判断在该二维数组中是否存在该字符串?提示:存在是指在二维数组中上、下、左、右所有字符串时候存在连续的字符串,存在则返回true;2.给定指定数组8,3,4,5,7,6,4。求出需要填挖方的数值总和?3.两个链表...原创 2019-01-29 19:49:48 · 337 阅读 · 0 评论 -
根据经纬度计算时区
给定经纬度,返回时区编号:/** * 根据经度获取时区 * @param currentLon * @return */ public static int caculateTimeZone(double currentLon) { int timeZone ; int shangValue = (int)(curr...原创 2019-01-16 20:09:14 · 14315 阅读 · 4 评论 -
漫画算法:什么是红黑树?
转载自:https://www.sohu.com/a/201923614_466939二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。红黑树特点:1.节点是红色或黑色。2.根节点是黑色。3.每个叶子节点都是黑色的空节点(NIL节点)。4 每个红色节点的两...转载 2018-11-25 23:08:30 · 141 阅读 · 0 评论 -
漫画:什么是 B+ 树?
转载自:https://www.sohu.com/a/156886901_479559 漫画:什么是 B+ 树?这一次我们来介绍 B+ 树。 一个m阶的B树具有如下几个特征: 1.根结点至少有两个子女。 2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m 3.每一个叶...转载 2018-11-26 00:00:28 · 184 阅读 · 0 评论 -
1472. 双胞胎字符串
1472. 双胞胎字符串给定两个字符串 s和t,每次可以任意交换s的奇数位或偶数位上的字符,即奇数位上的字符能与其他奇数位的字符互换,而偶数位上的字符能与其他偶数位的字符互换,问能否经过若干次交换,使s变成t。样例给出 s=“abcd”,t=“cdab”,返回"Yes"。解释:第一次a与c交换,第二次b与d交换。给出 s=“abcd”,t=“bcda”,返回"No"。解释:无论如何...原创 2018-11-24 22:01:40 · 503 阅读 · 0 评论 -
50道JAVA基础编程练习题
【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?&amp;nbsp;程序分析:&amp;nbsp;兔子的规律为数列1,1,2,3,5,8,13,21....&amp;nbsp;public&amp;nbsp;class&amp;nbsp;Prog1{public&amp;nbsp;转载 2018-11-28 00:04:04 · 349 阅读 · 0 评论 -
java翻转链表
翻转链表:需要经过一下步骤:第一步:定义Node类第二步:构造出一个链式表示例;第三部:写一个翻转链表的函数:第四部,在主函数中依次调用构建链表、翻转链表具体函数如下:package cetcocean;/** * @description: * @author: fangchangtan * @create: 2019-01-10 15:01 */import java...原创 2019-01-10 15:50:01 · 357 阅读 · 0 评论 -
判断任意时刻、位置是白昼?黑夜?
问题描述:给定经纬度(lon,lat),计算某时刻(utc时间戳)是白天还是黑夜?具体代码实现如下:package common.utils;import java.text.SimpleDateFormat;import java.util.TimeZone;/** * @description:给定任意utc,计算该utc对应的白昼时长。调用函数:getDayTimeLengt...原创 2019-01-17 12:56:53 · 1704 阅读 · 0 评论 -
交换链表中相邻的元素
方法一:直接交换链表中两个元素值,给元素交换赋值,而不用改变指针方向;但是这种方法中当单个节点中有很多字段的时候(比如:name,age,sex),效率较低!package suanfa.warppairs;/** * @description:两两交换链表中相邻节点 * 通过直接交换元素值,不改变指针方向的方式,需要辅助空间O(1) * @author: fangct * @...原创 2019-01-24 11:04:06 · 1233 阅读 · 0 评论 -
比较二叉树相等
如何判断两棵二叉树的结构是一样的、且对应的每个结点都有着相同的值。相等的定义:如何判断两棵二叉树的结构是一样的、对应的每个结点都有着相同的值有两种方法:一种是递归比较。另一种是二叉树的遍历。(1)方法一:前序(后序) +中序可以唯一确定一颗二叉树先说二叉树的遍历。由于先序遍历 再加上 中序遍历能唯一确定一棵二叉树。故,对这两棵树分别进行先序和中序遍历,比较这两棵树的先序遍历序列和中序遍历......原创 2019-01-24 16:44:51 · 1732 阅读 · 1 评论 -
二叉树:深度遍历、广度遍历、二叉树的深度、宽度
1.实现二叉树的深度遍历与广度遍历(java)(递归实现)package cetc.tree.test;import cetc.tree.test.BinaryTree2.TreeNode;public class BinaryTree2 { /** * 定义一个二叉树的节点 * @author Administrator * */ public class Tr...原创 2018-10-13 23:40:51 · 316 阅读 · 0 评论