
剑ZOF
李家少年
这个作者很懒,什么都没留下…
展开
-
圆圈中最后剩下的数
让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数….这样下去….直到剩下最后一个小朋友,可以不用表演,并且拿到牛客名贵的“名侦探柯南”典藏版(名额有限哦!!^_^)。请你试着想下,哪个小朋友会得到这份礼品呢?(注:小朋友的编号是从0到n-原创 2017-04-10 10:51:00 · 401 阅读 · 0 评论 -
第k大的元素
析:借助快速排序的思想import java.util.Scanner;public class Main4 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); String numStr=sc.nextLine(); String[] n原创 2017-08-26 17:26:29 · 386 阅读 · 0 评论 -
map排序
按照key排序:TreeMap提供了按key排序。 import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map原创 2017-04-16 17:29:56 · 308 阅读 · 0 评论 -
判断树是否对称
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。/*思路:首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同 * 左子树的右子树和右子树的左子树相同即可,采用递归 * 非递归也可,采用栈或队列存取各级子树根节点 */ public class Solution { boolean isSymmetrical(TreeNo原创 2017-04-19 22:15:22 · 1015 阅读 · 0 评论 -
把数组排成最小的数
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。析:主要考虑谁放在前谁在后的问题 public String PrintMinNumber(int [] numbers) { String[] ss = new String[numbers.lengt原创 2017-04-19 21:17:29 · 235 阅读 · 0 评论 -
leetcode_169. Majority Element
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element always原创 2017-03-07 14:40:41 · 247 阅读 · 0 评论 -
二叉树根到叶路径
题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 ArrayList<ArrayList<Integer>> outer = new ArrayList<>(); ArrayList<Integer> inn = new ArrayList<>(); public Array原创 2017-04-19 16:18:12 · 656 阅读 · 0 评论 -
判断是否二叉搜索树的后序遍历
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 public boolean VerifySquenceOfBST(int [] sequence) { if(sequence.length==0) return false; retu原创 2017-04-18 23:35:24 · 268 阅读 · 0 评论 -
栈的压入、弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)析:把数真的入栈看看是否会形成出栈序列 public boolean IsPopOrd原创 2017-04-18 23:17:05 · 207 阅读 · 0 评论 -
堆问题:求n个整数中最小的K个数
建堆过程堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。既然是堆排序,自然需要先建立一个堆,而建堆的核心内容是调整堆,使二叉树满足堆的定义(每个节点的值都不大于其父节点的值)。调堆的过程应该从最后一个非叶子节点开始,假设有数组A =原创 2017-04-10 21:45:49 · 1538 阅读 · 0 评论 -
优先队列PriorityQueue
PriorityQueue是个基于优先级堆的优先级队列。此队列按照在构造时所指定的顺序对元素排序,既可以根据元素的自然顺序来指定排序(参阅 Comparable),也可以根据Comparator 来指定,这取决于使用哪种构造方法。优先级队列不允许 null 元素。例1:按照升序依次取出元素import java.util.PriorityQueue;public class BiJiao {原创 2017-04-12 11:08:25 · 1166 阅读 · 0 评论 -
找中位数
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。public class Solution { public void Insert(Integer num) { } public Double GetMedian() { } }析:借助小原创 2017-04-11 22:25:30 · 345 阅读 · 0 评论 -
矩阵中的路径(2)
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如[a b c e s f c s a d e e]是3*4矩阵,其包含字符串”bcced”的路径,但是矩阵中不包含“abcb”路径,因为字符串的第一个字符b占据了矩阵原创 2017-04-11 14:27:54 · 610 阅读 · 0 评论 -
二维矩阵里的路径问题
地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?析:就是判断从(0,0)能到达的点的数目。法1:别人的递归原创 2017-04-11 10:07:00 · 918 阅读 · 0 评论 -
删除链表中重复的结点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5注:易错点就是有些地方缺少判断空出错。 思路:先找到头结点。之后,每次看当前元素的前后比较,如果与前后都不相等就可以放进链表。public ListNode deleteDuplication(ListNode pHead)原创 2017-04-10 16:57:47 · 241 阅读 · 0 评论 -
滑动窗口的最大值
给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {原创 2017-04-11 16:20:47 · 469 阅读 · 0 评论