![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 74
一颗小小的石头.
这个作者很懒,什么都没留下…
展开
-
java 实现 全排列,组合数
数学概念:组合数:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合排列数:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。Java实现:其中,全排列有两种实现方式,分别是基于交换和基于flag标志位的。public class Main2 {...原创 2020-01-31 17:31:20 · 1036 阅读 · 0 评论 -
微软面试题 : 链表排序
很经典的一道题,既然是面试拿出来,肯定是要求 O(n * logn) 的时间复杂度了。肯定是递归了,可以用快排或者归排原创 2020-01-30 22:38:41 · 208 阅读 · 0 评论 -
链表算法: k个一组反转链表
单链表是最基本的数据结构,但同样可以考察递归思想。描述:如题, 将链表中的元素 k 个为一组,组内进行反转,不够 K 个的不反转。例如:给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5...原创 2020-01-30 21:55:54 · 389 阅读 · 0 评论 -
最大m子段和 快手面试题:善变的同伴
背景快手的一道算法面试题,链接 快手面试题:善变的同伴其实抽象出来就是 最大m子段和本文参考的是这位C++版,但其侧重讲的是优化https://blog.csdn.net/winter2121/article/details/72848482定义:给定由n个整数(可能为负)组成的序列a1、a2、a3…,an, 以及一个正整数m,要求确定序列的m个不相交子...原创 2019-12-31 15:40:47 · 769 阅读 · 0 评论 -
Java LRU的两种实现
LRU 最近最久未使用,是一种常用的淘汰算法,广泛应用与OS内存页面调度,Redis缓存淘汰策略,等等。在Java中有两种实现方式,一个是直接利用JDK已有的 LInkedHashMap ,一个是自己手写 DoubleLinkedList 结合HashMap。一:利用JDK方法public class LRU<K,V> extends LinkedHashMap<K,V>...原创 2019-11-22 14:23:26 · 567 阅读 · 0 评论 -
算法之 数组两端取数游戏
题目 同学A与B玩取数游戏。即有一个2n项的数组,其中每个都是整数且对两位同学都是可见的,两位同学轮流从 两端 取走数字(假设A同学先取)。 胜负评判:所取数之和较大者获胜(可能存在平局)。分析如果题目问A同学的胜负情况,那可以直接回答胜或者平局,因为数组对两位同学都是可见的,都做出最佳决策的情况下肯定是先取者获胜,或者平局。如果题目问A同学最后会比B同学多多...原创 2019-09-25 15:51:44 · 4328 阅读 · 3 评论 -
二叉树相关面试算法题(java实现)
二叉树可以说是最重要的非线性数据结构了,也是考察递归思想的重要手段。二叉树分为普通二叉树,排序二叉树,平衡二叉树,红黑树等等。这里代码中我选择的是排序二叉树,有特殊性但又不失一般性,复杂度适中。算法主要有(难度递增):各种遍历,其中要注意的是后序非递归遍历,层序遍历(带层数,例如问第3层有几个节点)。常见的统计叶子,非叶子节点数,求深度,判断左右子树相似,判断平衡等。根据先序与中序建立...原创 2019-05-30 00:17:10 · 762 阅读 · 0 评论 -
校招算法题:字符串价值
在牛客网上看到一个2018校招题,爱奇艺的,叫做 “字符串的价值”。感觉所有别人的答案都不满意,特此记录题目描述:有一种有趣的字符串价值计算方式 : 统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值例如: 字符串"abacaba",里面包括4个’a’,2个’b’,1个’c’,于是这个字符串的价值为4 * 4 + 2 * 2 + 1 * 1 = 21牛牛有一个字符串...原创 2019-06-20 09:54:42 · 360 阅读 · 0 评论