题目 在数组中找到出现次数大于N/K 的数 java代码 package com.lizhouwei.chapter8; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Description: 在数组中找到出现次数大于N/K 的数 * @Author: lizhouwei * @CreateDate: 2018/5/7 19:58…
题目: 1.给定一个整型数组,打印其中出现次数大于一半的数.如果没有出现这样的数,打印提示信息. 如:1,2,1输出1.    1,2,3输出no such number. 2.给定一个整型数组,再给一个整数K,打印所有出现次数大于N/K的数,如果没有这样的数,打印提示信息. 解答: 两道题都可以使用哈希表记录每个数出现的次数,额外的空间复杂度为O(N). 其他的方法: 1.时间复杂度为O(N).额外空间复杂度为O(1). public static void printHalfMajor(in…
题目 给出一个无重复元素的数组,构造此数组的MaxTree, java代码 /** * @Description: 构造数组的MaxTree * @Author: lizhouwei * @CreateDate: 2018/4/5 22:16 * @Modify by: * @ModifyDate: */ public class Chapter1_8 { public Node getMaxTree(int[] arr) { if (arr == null) { return null; }…
题目 去掉字符串中连续出现k 个0 的子串 java代码 package com.lizhouwei.chapter5; /** * @Description: 去掉字符串中连续出现k 个0 的子串 * @Author: lizhouwei * @CreateDate: 2018/4/23 21:34 * @Modify by: * @ModifyDate: */ public class Chapter5_3 { public String removeKZero(String str, in…
[题目]分别实现两个函数,一个可以删除单链表中倒数第K个节点,另一个可以删除双链表中倒数第K个节点.[要求]如果链表长度为N,时间复杂度达到O(N),额外空间复杂度达到O(1).[题解]从头遍历链表,每移动一次,K--,直至移动到链表尾部,此时k>0,说明k太大,链表不用删除k==0,链表长度即是k, 删除头结点即可k<0,再次重头遍历链表,每移动一次,k++,当k==0时,此时结点为要删除结点的前结点,使其指向下一个结点即可双向链表一样,只不过需要注意前结点就好 #include <i…
  第1章栈和队列 1设计一个有getMin功能的栈(士★☆☆☆) 1由两个栈组成的队列(尉★★☆☆) 5如何仅用递归函数和栈操作逆序一个栈(尉★★☆☆) 8猫狗队列(士★☆☆☆)10用一个栈实现另一个栈的排序(士★☆☆☆) 13用栈来求解汉诺塔问题(校★★★☆) 14生成窗口最大值数组(尉★★☆☆) 19构造数组的MaxTree(校★★★☆) 22求最大子矩阵的大小(校★★★☆) 26最大值减去最小值小于或等于num的子数组数量(校★★★☆) 31第2章链表问题34打印两个有序链表的公共部分(…
给定一个int[]数组,给定一个整数k,打印所有出现次数大于N/k的数,没有的话,给出提示信息. === 核心思想:一次在数组中删除K个不同的数,不停的删除,直到剩下的数的种类不足K就停止删除,那么如果一个数在数组中出现的次数大于N/K,则这个数最后一定会被剩下来. 解法:设立(K-1)个候选cand,以及(K-1)个times统计. 过程如下: 遍历到arr[i]时,看arr[i]是否与以及被选出来的某一个候选相同, 如果与某一个候选相同,就把属于那个候选的点数统计加1, 如果与所有的候选都不…
原文链接 这是一本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现.针对当前程序员面试缺乏权威题目汇总这一痛点,本书选取将近200道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无一失.“刷”完本书后,你就是“题王”!__eol__本书采用题目+解答的方式组织内容,并把面试题类型相近或者解法相近的题目尽量放在一起,读者在学习本书时很容易看出面试题解法之间的联系,使知识的学习避免碎片化.书中将所有的面试题从难到易依次分为“将.校.尉.士”四个档次,…
题目链接 https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf?tpId=13&tqId=11182&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述 从无序序列,找到最小topk个元素. 解题思路 使用大根堆维护最小topk个元素: - 首先前k个元素建立大根堆(从…
题目 在其他数都出现k 次的数组中找到只出现一次的数 java 代码 package com.lizhouwei.chapter7; /** * @Description: 在其他数都出现k 次的数组中找到只出现一次的数 * @Author: lizhouwei * @CreateDate: 2018/4/28 21:20 * @Modify by: * @ModifyDate: */ public class Chapter7_6 { public int getOnceNum(int[] a…