剑指OFFER
xuwang777
这个作者很懒,什么都没留下…
展开
-
剑指offer21-栈的压入,弹出序列
一:第一种方法-辅助栈 Judge4,我自己用的也是辅助栈,但是没这个答案精简。第二种方法-ArrayList,也是相同的思路,只不过将辅助栈改为arrayList,本质一样。最后一种方法Judge5,报错,因为我想将int[],直接转为ArrayList<Integet>,失败。有两个方法:1.org.apache.commons.lang3.ArrayUt...原创 2019-03-13 14:17:22 · 854 阅读 · 0 评论 -
剑指offer55:链表中环的入口节点
题目:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。tips:1.关于==和equals 1)对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址 2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量 e...原创 2019-04-26 21:37:57 · 98 阅读 · 0 评论 -
剑指offer:整数中1出现的次数
链接:https://www.nowcoder.com/questionTerminal/bd7f978302044eee894445e244c7eee6来源:牛客网设N = abcde ,其中abcde分别为十进制中各位上的数字。如果要计算百位上1出现的次数,它要受到3方面的影响:百位上的数字,百位以下(低位)的数字,百位以上(高位)的数字。 ① 如果百位上数字为0,百位上可能出现1的次...原创 2019-04-15 13:54:30 · 122 阅读 · 0 评论 -
剑指offer:连续子数组的最大和
题目:例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)动态规划:/** * @author :GY * @version :1.0 * @ClassName : * @Description TODO * @date :Created i...原创 2019-04-14 20:27:30 · 81 阅读 · 0 评论 -
PriorityQueue相关
默认情况下PriorityQueue使用自然排序法,最小元素先出列。PriorityQueue是一种无界的,线程不安全的队列。是一种通过数组实现的,并拥有优先级的队列。存储的元素要求必须是可比较的对象, 如果不是就必须明确指定比较器。一般而言,堆为二叉树。(offer)上移,找父节点;(poll)下移,找还左孩子节点和右孩子(若存在)。offer,poll都会自动调整堆的排列...原创 2019-04-14 15:36:14 · 154 阅读 · 0 评论 -
剑指offer:最小k个数
1. 题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。2. 方法:(1)基于堆排序算法,构建最大堆。时间复杂度为O(nlogk)(2)如果用快速排序,时间复杂度为O(nlogn);(3)如果用插入排序,时间复杂度为O(n^2)。3.算法(1):最大堆/*1.判断特殊情况:k的大小,k==...原创 2019-04-14 14:16:08 · 98 阅读 · 0 评论 -
剑指offer:把数组排成最小的数
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。tips:1. Compare(o1,o2),这里默认升序,也就是return o1-o2; 只有返回-1,才需要交换o1,o2。所以若o1<o2,则o1-o2 返回-1,不需要交换,所以还是o1,o2的...原创 2019-04-16 10:48:19 · 119 阅读 · 0 评论 -
剑指offer47:1+2+3+...+n
题目:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)思路:位运算代码:下拉到最后注意点:1. 短路特点: 作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值(short-circuit ...原创 2019-04-24 15:04:54 · 150 阅读 · 0 评论