
算法
还不够
这个作者很懒,什么都没留下…
展开
-
JAVA实现:一个数组有2n个元素,其中有n个奇数、n个偶数,数组无序,写一个算法使得奇数位置放置奇数,偶数位置放置偶数
public class JiAndOu { public static void main(String[] args) { JiAndOu main = new JiAndOu(); main.doAction(); } private void doAction() { int[] nums = {1,...原创 2020-04-19 21:41:48 · 837 阅读 · 0 评论 -
删除K个数字,使剩下的数字串最大
原文:https://blog.youkuaiyun.com/lxmky/article/details/8031780但是原文不容易理解,看下面的代码题目:一个n位的数,去掉其中的k位,问怎样去掉使得留下来的那个(n-k)位的数最大?分析:可以直接用贪心来求解,每次寻找从头开始的连续递减序列,删除递减序列的最后一个元素,重复K次,最后剩下的数字串组成的数字最大。比如:“13...原创 2020-04-03 10:25:44 · 1310 阅读 · 1 评论 -
Sort List (归并排序链表)
原文:https://leetcode-cn.com/problems/sort-list/solution/sort-list-gui-bing-pai-xu-lian-biao-by-jyd/解答一:归并排序(递归法)题目要求时间空间复杂度分别为O(nlogn)O(nlogn)和O(1)O(1),根据时间复杂度我们自然想到二分法,从而联想到归并排序;对数组做归并排序的空间复杂度...转载 2020-03-30 10:45:16 · 477 阅读 · 0 评论 -
快速排序原理及java实现
原文: https://blog.youkuaiyun.com/crazy_rain/article/details/1572080原文写的好,大家去看原文 快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。最...转载 2018-04-01 15:46:02 · 247 阅读 · 0 评论 -
堆和堆的应用:堆排序和优先队列
堆和堆的应用:堆排序和优先队列1.堆堆(Heap)是一种重要的数据结构,是实现优先队列(Priority Queues)首选的数据结构。由于堆有很多种变体,包括二项式堆、斐波那契堆等,但是这里只考虑最常见的就是二叉堆(以下简称堆)。堆是一棵满足一定性质的二叉树,具体的讲堆具有如下性质:父节点的键值总是不大于它的孩子节点的键值(小顶堆), 堆可以分为小顶堆和大顶堆,这里以小顶堆为例,其主要包含的操作...转载 2018-04-10 23:21:58 · 191 阅读 · 0 评论 -
字典树-大量字符串前缀及出现次数是否存在统计(Trie树-java)算法实现
原文:https://blog.youkuaiyun.com/chenleixing/article/details/44708533有说明没有该单词,有的话用同样的方法继续查找.字典树不仅可以用来储存字母,也可以储存数字等其它数据。它的优势是,利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表还高,当数据足够庞大时,会发现她比传统的字符串统计要快很多。 它有三个...转载 2018-04-22 21:27:28 · 620 阅读 · 0 评论 -
目录:名企笔试 + 算法题
名企笔试:美团2016招聘笔试(股票交易日)名企笔试:搜狐2016招聘笔试题(扎金花)名企笔试:凤凰网2015招聘(二分查找)名企笔试:4399游戏校招笔试题(快速排序)名企笔试:蘑菇街2016招聘笔试(回文串)名企笔试:网易招聘笔试(升级之路)名企笔试 : 完美世界招聘笔试(子序列)名企笔试:华为校招笔试题(字符集合)名企笔试:楚楚街2016招聘笔试(旅途)名气笔试:楚楚街2016招聘笔试(解密...转载 2018-04-18 20:05:21 · 522 阅读 · 0 评论 -
算法经典面试题整理(java实现)
以下从Java角度解释面试常见的算法和数据结构:字符串,链表,树,图,排序,递归 vs. 迭代,动态规划,位操作,概率问题,排列组合,以及一些需要寻找规律的题目。1. 字符串和数组字符串和数组是最常见的面试题目类型,应当分配最大的时间。关于字符串,首先需要注意的是和C++不同,Java字符串不是char数组。没有IDE代码自动补全功能,应该记住下面的这些常用的方法。[java] view plai...转载 2018-04-22 23:51:30 · 377 阅读 · 0 评论 -
[算法]面试时的Java数据结构与算法
查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这些排序可能会要求...转载 2018-04-22 23:54:27 · 186 阅读 · 0 评论 -
二叉搜索树Java实现(查找、插入、删除、遍历)
原文:https://www.cnblogs.com/Michaelwjw/p/6384428.html由于最近想要阅读下 JDK1.8 中 HashMap 的具体实现,但是由于 HashMap 的实现中用到了红黑树,所以我觉得有必要先复习下红黑树的相关知识,所以写下这篇随笔备忘,有不对的地方请指出~ 学习红黑树,我觉得有必要从二叉搜索树开始学起,本篇随笔就主要介绍转载 2018-03-31 23:10:52 · 340 阅读 · 0 评论 -
括号匹配算法的一种正确实现(java)
原文:https://blog.youkuaiyun.com/nmgrd/article/details/69101406本人需要判断一个字符串里括号是否成对出现,发现正则满足不了或者正则表达式太复杂,只能用java算法实现了,网上找了几段代码,发现要么不合适,要么有的情况会误判,无奈只能参考那些例子进行改造了,现在贴出来,希望对某些人有用。import java.util.Hash转载 2018-03-31 22:22:17 · 481 阅读 · 0 评论 -
算法数据结构-B树
原文:http://mp.weixin.qq.com/s/3KWiO2RWw3xIFJzqDX0KUA介绍B树的目的为了硬盘快速读取数据(降低IO操作次树)而设计的一种平衡的多路查找树。目前大多数据库及文件索引,都是使用B树或变形来存储实现。为什么B树效率高在大规模数据存储操作中,由于无法一次性加载到内存里。所以避免不转载 2017-06-11 21:15:51 · 358 阅读 · 0 评论 -
从B 树、B+ 树、B* 树谈到R 树
原文:http://blog.youkuaiyun.com/v_JULY_v/article/details/6530142/从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由转载 2017-06-11 21:17:36 · 242 阅读 · 0 评论 -
Java中的经典算法之冒泡排序(Bubble Sort) 及优化
原文:https://www.cnblogs.com/shen-hua/p/5422676.htmlJava中的经典算法之冒泡排序(Bubble Sort)SiberiaDante的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后转载 2017-12-06 13:27:48 · 284 阅读 · 0 评论 -
JAVA实现单链表快速排序
原文:https://blog.youkuaiyun.com/u011606714/article/details/66976034请去查看原文,链接在上面链表与数组排序的不同在于,数组里通过下标交换的开销是O(1)的,而链表是O(n)的。所以,直接照搬数组的快速排序到链表,速度会很慢。但是链表有一个优点,就是把元素移动到尾部,时间是O(1)的。思路如下:将链表的第一个元素设置为pivot,遍历之后的n-1个...转载 2018-04-07 17:22:16 · 851 阅读 · 0 评论 -
java实现二分查找-两种方式
原文:https://blog.youkuaiyun.com/maoyuanming0806/article/details/78176957二分查找是一种查询效率非常高的查找算法。又称折半查找。起初在数据结构中学习递归时实现二分查找,实际上不用递归也可以实现,毕竟递归是需要开辟额外的空间的来辅助查询。本文就介绍两种方法二分查找算法思想有序的序列,每次都是以序列的中间位置的数来与待查找的关键字进行比较,每次缩...转载 2018-04-07 23:11:18 · 1032 阅读 · 1 评论 -
面试题目汇总(JAVA算法/数据结构)
原文:https://blog.youkuaiyun.com/zyx520ytt/article/details/724662551.题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。代码:[java] view plain copyimport java.util.ArrayL...转载 2018-04-22 23:57:14 · 926 阅读 · 0 评论 -
常考面试算法题类型总结(来自知乎)
作者:牛客网链接:https://www.zhihu.com/question/24964987/answer/200681301来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。常考面试算法题类型总结结合2017春招和秋招真题,以下几类算法题最常考,汇总了一下:一、暴力枚举好多鱼!DNA合成连续整数序列和01翻转最长公共连续子串组装三角形最小的矩形字符串分类优美的回文...转载 2018-04-23 00:06:58 · 9653 阅读 · 0 评论 -
互联网公司最常见的面试算法题有哪些?
原文:https://www.zhihu.com/question/24964987从程序员面试角度来说,经典的问题包括以下内容:算法部分 二分搜索 Binary Search 分治 Divide Conquer 宽度优先搜索 Breadth First Search 深度优先搜索 Depth First Search回溯法 Backtracking 双指针 Two Pointers ...转载 2018-04-18 21:11:47 · 4659 阅读 · 0 评论 -
Dubbo负载均衡:最少活跃数(LeastActive)的实现分析
原文:https://blog.youkuaiyun.com/liupeng_family/article/details/73162326最少活跃数的含义官方解释:最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差,使慢的机器收到更少。例如,每个服务维护一个活跃数计数器。当A机器开始处理请求,该计数器加1,此时A还未处理完成。若处理完毕则计数器减1。而B机器接受到请求后很快处理完毕。那么A,B的活跃数...转载 2018-06-26 14:56:14 · 507 阅读 · 0 评论 -
单链表的倒序
原文:https://blog.youkuaiyun.com/evan123mg/article/details/45725357单链表的翻转是一道很基本的算法题。 方法1:将单链表储存为数组,然后按照数组的索引逆序进行反转。 方法2:使用三个指针遍历单链表,逐个链接点进行反转。 方法3:从第2个节点到第N个节点,依次逐节点插入到第1个节点(he...转载 2018-06-22 17:12:16 · 2482 阅读 · 0 评论 -
回溯法----旅行售货员问题java算法
原文:https://blog.youkuaiyun.com/jarvischu/article/details/6058931一、问题 同文章 <分支限界法----旅行售货员问题> 二、代码实现 程序实现了 递归回溯 解决该问题 迭代回溯算法仍在考虑中...[cpp] view plain copy/******************************...原创 2018-04-21 15:22:37 · 4996 阅读 · 0 评论 -
Java回溯法对数字的全排列
原文:https://blog.youkuaiyun.com/iloveyougirls/article/details/55044401一、对于不重复数字的全排列(例如:1,2,3,4,5,7,8,9)1.用数学的方法来算很简单,排列的结果是9!种情况;下面是简单的一个代码的例子:[java] view plain copy转载 2018-04-21 12:21:21 · 712 阅读 · 0 评论 -
java LRU和LFU缓存置换算法
原文:https://blog.bcmeng.com/post/lru-lfu.htmlLRU和LFU缓存置换算法作者: 康凯森日期: 2016-05-05分类: 算法为什么需要CacheCache是什么Cache无处不在常用的Cache服务器为什么需要 Cache为什么不全放在 Cache中为什么Cache需要置换LFU Cache转载 2018-05-01 19:20:51 · 825 阅读 · 0 评论 -
贪心算法_01背包问题_Java实现
转载请注明出处:http://blog.youkuaiyun.com/ljmingcom304/article/details/50310789 本文出自:【梁敬明的博客】1.贪心算法 什么是贪心算法?是指在对问题进行求解时,总是做出当前看来是最好的选择。也就是说,不从整体最优上加以考虑,所得出的结果仅仅是某种意义上的局部最优解。因此贪心算法不会对所有问题都能得到整体最优解,但对于很多问题能产生整体最优解或...转载 2018-04-19 18:48:31 · 884 阅读 · 0 评论 -
分治算法_汉诺塔问题_Java实现
原文:https://blog.youkuaiyun.com/ljmingcom304/article/details/50296939转载请注明出处:http://blog.youkuaiyun.com/ljmingcom304/article/details/50296939 本文出自:【梁敬明的博客】1.分治算法 什么是分治算法?就是将一个难以解决的大问题,分割成一些规模较小并且相对独立的相同问题,以便各个击破,...转载 2018-04-19 18:37:36 · 287 阅读 · 0 评论 -
史上最通俗易懂的关于二叉查找树、平衡二叉树、红黑树的关系讲解
原文:http://baijiahao.baidu.com/s?id=1561409115312135&wfr=spider&for=pc首先说也很重要的事情,此篇文章中关于旋转的问题,小编在写文章的时候查了很多资料,发现几乎没有资料可以参考,所有的文章都是一笔带过,小编认为这种行为很不负责,既然自己没有搞明白就不要发出来,耽误我们的时间,于是小编自己想了很久,给出了一个推理的过程...转载 2018-04-19 14:05:47 · 3649 阅读 · 1 评论