自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (1)
  • 收藏
  • 关注

原创 【牛客练习赛59】B:牛能和小镇

题目描述在牛国有2个小镇编号1,2,3...n-1,n。用二维平面来表示每个小镇的位置,第个小镇的位置为(xi,yi)。牛能做为牛国的国王,决定给小镇之间建设一些道路,以便于任意小镇之间都能相互到达,在第个小镇和第个小镇之间建设一条道路的花费是:|Xi*Xi*Yi-Xj*Xj*Yj+Yi*Yi*(Yi-2*Xi)-Yj*Yj*(Yj-2*Xj)|但是牛能小气的很,他想最小化建设的费用。...

2020-03-14 16:04:00 163 1

原创 【牛客练习赛59】A:小乔和小灰灰

比赛地址:https://ac.nowcoder.com/acm/contest/4743/A题目描述小乔和小灰灰是好朋友,现在如果一个字符串中同时出现子序列“XiaoQiao”和“XiaoHuiHui”,那么小乔和小灰灰都会感到开心。如"abc"的子序列有:“a"、“b”、“c”、“ab”、“ac”、“bc”、“abc”。输入描述:输入包含一行一个字符串S字符串中仅包含大写字母...

2020-03-14 15:46:00 185

原创 Java输入 StreamTokenizer

StreamTokenizer用来分隔字符串。可以获取输入流并将其分析为Token(标记)。StreamTokenizer的nextToken方法将读取下一个标记。功能 : 1、 将输入流分解成一组标记,允许一次读一个。分解过程由一张表和一些可以设置成各种状态的标志来控制。 2、读取的每个字节被认为是“\u0000”-“\u00FF”之间的字符。空格(“\u0000”-“\u002...

2020-03-14 00:20:00 310

原创 【剑指Offer】10、 矩形覆盖

题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?题解一:递归 1 //类似于斐波那契,递归 2 public static int RectCover(int target) { 3 if(target<=0){ 4 return 0;...

2020-03-13 14:46:00 75

原创 【剑指Offer】64、数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。题解一:ArrayList 1 private static ArrayList<In...

2020-03-13 14:06:00 75

原创 【剑指Offer】55、字符流中第一个不重复的字符

题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。题解一:HashMap 1 private static HashMap<Character...

2020-03-12 21:19:00 91

原创 【剑指Offer】54、表示数值的字符串

题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。题解一:库函数 1 /** 2 *parseDouble()与valueOf()均可 3 */ 4...

2020-03-12 19:44:00 52

原创 【剑指Offer】12、数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0题解一:递推 1 public static double Power(double base, int exponent) { 2 boolean flag = false; 3 if...

2020-03-11 18:13:00 49

原创 【剑指Offer】11、二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。题解一:按位与 1 public static int NumberOf1(int n) { 2 int count=0; 3 int flag=1; 4 //和n的每位进行位与,来判断1的个数 5 while (flag!=0){ 6 ...

2020-03-11 13:50:00 50

原创 【剑指Offer】34、第一个只出现一次的字符

题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)题解一:HashMap 1 public static int FirstNotRepeatingChar(String str) { 2 Map<Character, Integer&g...

2020-03-11 00:02:00 65

原创 【剑指Offer】19:顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.题解一:循环转向 1 public static ArrayList<Integer> pr...

2020-03-10 18:53:00 83

原创 【剑指Offer】31、整数中1出现的次数(从1到n整数中1出现的次数)

题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。题解一:归纳法 1 /** 2 *个位上1出现的个数为:...

2020-03-09 21:44:00 68

原创 【剑指Offer】35:数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围: 对于%50的数据,size<=10^4 对于%75的数据,size<=10^5 对于%100的数据,si...

2020-03-09 16:52:00 53

原创 【剑指Offer】32、把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。题解一:DFS 1 //存放一次循环中遍历过的数字 2 private static int[] nums; 3 //标记是否遍历过,遍历过为1,否则为0 4 priv...

2020-03-08 21:49:00 55

原创 【剑指Offer】37:数字在排序数组中出现的次数

题目描述统计一个数字在排序数组中出现的次数。题解一:循环 1 public static int GetNumberOfK(int [] array , int k) { 2 if(array.length==0){ 3 return 0; 4 } 5 int count=0; 6 ...

2020-03-08 16:38:00 54

原创 【剑指Offer】29:最小的K个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。题解一:快排 1 public static ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { 2 ArrayList<Integer...

2020-03-07 22:36:00 50

原创 堆排序

对简单选择排序的优化1.将序列构建成大顶堆。2.将根节点与最后一个节点交换,然后断开最后一个节点。3.重复第一、二步,直到所有节点断开。实现方式一: 1 public static void heapSort(int[] a){ 2 System.out.println("开始排序"); 3 int arrayLength=a.leng...

2020-03-07 18:04:00 57

原创 【剑指Offer】30、连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大...

2020-03-06 22:40:00 68

原创 【剑指Offer】28、数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。题解一:HashMap 1 public static int MoreThanHalfNum_Solution(int [] array) { 2 ...

2020-03-06 18:05:00 55

原创 遍历HashMap的三种方式

方式一:entrySet()遍历HashMap的entrySet键值对集合1.通过HashMap.entrySet()得到键值对集合;2.通过迭代器Iterator遍历键值对集合得到key值和value值; 1 @Test 2 public void testHashMap01(){ 3 // 创建一个key和value均为String的Map集合 ...

2020-03-06 17:50:00 505

原创 【剑指Offer】13、调整数组顺序使奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。题解:两个栈 1 public static void reOrderArray(int [] array) { 2 if(array.length==0){ 3 ...

2020-03-05 16:41:00 91

原创 【剑指Offer】06:旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。题解:二分查找思路:/** *二分查找 * 需要考虑三种情况: * (1)array[m...

2020-03-05 15:02:00 82

原创 【剑指Offer】33:丑数

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。题解: 1 //所有的丑数分为三种类型 2*i,3*i,5*i ,其中 i是数组中的元素,一开始只有1 2 public static int GetUglyNumber_Solut...

2020-03-04 22:16:00 48

原创 【剑指Offer】27、字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。题解一:递归 1 //去重的全排列就是从第一个数字起,每个数分别与它后面非重复出现的数字交换。 2 public static ArrayList<String> Permutation...

2020-03-04 21:03:00 66

原创 【剑指Offer】07、斐波那契数列

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39题解一:动态规划 1 public static String Fibonacci(int n) { 2 if (n <= 1) { 3 return n+""; 4 } 5 ...

2020-03-03 22:50:00 63

原创 【剑指Offer】57、删除链表中重复的结点

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5题解一:递归 1 public static ListNode deleteDuplication01(ListNode pHead) { 2 ...

2020-03-03 22:16:00 62

原创 【剑指Offer】56、链表中环的入口结点

题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。题解:快慢指针 1 /** 2 *设置快慢指针,都从链表头出发,快指针每次走两步, 3 * 慢指针一次走一步,假如有环,一定相遇于环中某点。 4 * 接着让两个指针分别从相遇点和链表头出发,两者都改为每次走一步,最终相遇于环入口 5 */ 6 ...

2020-03-02 21:04:00 57

原创 【剑指Offer】36、两个链表的第一个公共结点

题目描述输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)题解一:迭代1 public static ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {2 ListNode p1 = pHead1;3 ...

2020-03-02 17:09:00 45

原创 【剑指Offer】14、链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。题解一:栈 1 public static ListNode FindKthToTail(ListNode head,int k) { 2 if(head==null||k<=0){ 3 return null; 4 } 5 Stack<L...

2020-03-02 13:44:00 54

原创 【剑指Offer】15、反转链表

题目描述输入一个链表,反转链表后,输出新链表的表头。题解一:栈 1 public static ListNode ReverseList(ListNode head) { 2 if(head==null||head.next==null){ 3 return head; 4 } 5 Stack<...

2020-03-02 00:00:00 58

原创 【剑指Offer】16、合并两个排序的链表

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解法一:使用ArrayList 1 public static ListNode Merge(ListNode list1,ListNode list2) { 2 if(list1==null||list2==null){ 3 if(li...

2020-03-01 21:03:00 47

原创 【剑指Offer】25、复杂链表的复制

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)题解:Hashmap 1 public static RandomListNode Clone(RandomListNode pHead){ 2 ...

2020-02-29 23:16:00 51

原创 【剑指Offer】65、滑动窗口的最大值

题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{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...

2020-02-29 17:12:00 36

原创 【剑指Offer】20、包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。题解:辅助栈 1 private static Stack<Integer> stack = new Stack<>(); 2 private st...

2020-02-28 17:04:00 42

原创 【剑指Offer】05、用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。题解一: 1 //stack2有元素就pop,没有元素就将stack1中所有元素倒进来再pop 2 public static void push(int node) { 3 stack1.push(node); 4 } 5 public ...

2020-02-28 15:50:00 45

原创 【剑指Offer】62、序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍...

2020-02-27 22:34:00 46

原创 【剑指Offer】26、二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。题解:中序遍历  private static TreeNode lastNode = null; 1 public TreeNode Convert(TreeNode pRootOfTree) { 2 inOrderConvert(pRo...

2020-02-27 21:05:00 42

原创 【剑指Offer】17、树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)题解:递归 1 public static boolean HasSubtree(TreeNode root1,TreeNode root2) { 2 if(root1==null||root2==null){ 3 return false...

2020-02-26 21:56:00 47

原创 【剑指Offer】18、二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。题解:递归 1 /** 递归 2 * 先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子节点, 3 * 当交换完所有的非叶子结点的左右子结点之后,就得到了树的镜像 4 */ 5 public static void Mirror(TreeNode root) { 6 ...

2020-02-26 17:00:00 42

原创 【剑指Offer】59:对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。题解:递归 1 public static boolean isSymmetrical(TreeNode pRoot){ 2 if(pRoot==null){ 3 return true; 4 } 5...

2020-02-25 15:41:00 49

Hadoop安装资源.txt

mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar\apache-hive-2.0.0-bin.tar.gz\spark-2.4.5-bin-hadoop2.7.tgz\hbase-1.2.1-bin.tar.gz\hadoop-2.7.1.tar.gz\jdk-8u162-linux-x64.tar.gz

2020-06-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除