面试算法题总结
文章平均质量分 53
洞玄之
不积跬步,无以至千里
展开
-
排序算法java实现总结
时间复杂度: 冒泡,选择,插入 O(n^2) 归并,快排,堆排序,希尔排序 O(nlogn) 计数,基数排序 O(n)空间复杂度 O(1):冒泡,选择,插入,堆排序,希尔排序 O(logn)~O(n): 快排 O(n):归并 O(m):计数,基数排序一、冒泡排序思想:冒泡排序顾名思义就是整个过程像气泡一样往上升(假设由小到大排序):对于给定n个数,从头开始让...原创 2018-04-16 23:26:33 · 188 阅读 · 0 评论 -
编程题——链表
题目:输入一个链表,从尾到头打印链表每个节点的值。输入一个链表,输出该链表中倒数第k个结点。输入一个链表,反转链表后,输出新链表的表头。输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。复杂链表的复制:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。...原创 2018-06-30 10:33:16 · 2542 阅读 · 0 评论 -
1000瓶水有1瓶水有毒,老鼠喝一滴就会死,但是需要一周毒发,请问最少需要多少老鼠多少时间才能找到那瓶有毒的水。
1000瓶水有1瓶水有毒,老鼠喝一滴就会死,但是需要一周毒发,请问最少需要多少老鼠多少时间才能找到那瓶有毒的水。这个题是对bit位的应用,1000接近1024,所以对1000瓶水编号需要10个bit位,即对瓶子进行编号0~999, 10个bit 对应需要10只老鼠,编号1~10。瓶子的编号分别为:00000,0000000000,0000100000,00010,0000...原创 2018-07-31 23:29:23 · 7215 阅读 · 1 评论 -
树的遍历
package tree;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;class TreeNode { int val; TreeNode left; TreeNode right; TreeN...原创 2018-04-16 23:55:10 · 133 阅读 · 0 评论 -
采用PriorityQueue实现大小顶堆 解决topK问题
java.util 类 PriorityQueuejava.lang.Object ——继承者 java.util.AbstractCollection ———– 继承者 java.util.AbstractQueue —————–继承者 java.util.PriorityQueue类型参数: E - collection 中所保存元素的...原创 2018-08-18 12:12:22 · 19567 阅读 · 6 评论 -
BitSet 解决 40亿个整数中找到那个唯一重复的数字
40亿个整数中找到那个唯一重复的数字import java.util.BitSet;public class BitSet2 { public static void main(String[] args) { BitSet bitSet=new BitSet(); int[] nums={1,2,3,4,5,6,1}; ...原创 2018-08-19 00:18:47 · 5873 阅读 · 1 评论 -
leecode888~公平的糖果交换
公平的糖果交换爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大...原创 2018-08-19 11:45:52 · 400 阅读 · 0 评论 -
leecode 890 ~查找和替换模式
查找和替换模式你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配。如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的。(回想一下,字母的排列是从字母到字母的双射:每个字母映射到另一个字母,没有两个字母映射到同一个字母。)返回 words 中与给定模式匹配的...原创 2018-08-19 12:39:22 · 377 阅读 · 0 评论