![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客网
未至佳期
To be the best one.
展开
-
剑指Offer行榜【牛客网】练习(一)
1、二维数组的查找题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:为了避免遍历数组,找出第一行中lineIndex,比目标小,且lineIndex+1的数字比目标大;找出第一列的columnIndex,比目标小,且columnInd...原创 2018-12-27 23:15:34 · 96 阅读 · 0 评论 -
2018校招真题【牛客网】练习(三)
1、疯狂队列题目描述:小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值是最小的,他们当然决定按照疯狂值最大的顺序来进行列队。现在给出n个...原创 2019-03-11 10:14:03 · 318 阅读 · 0 评论 -
2018校招真题【牛客网】练习(七)
1、最后一位题目描述牛牛选择了一个正整数X,然后把它写在黑板上。然后每一天他会擦掉当前数字的最后一位,直到他擦掉所有数位。 在整个过程中,牛牛会把所有在黑板上出现过的数字记录下来,然后求出他们的总和sum.例如X = 509, 在黑板上出现过的数字依次是509, 50, 5, 他们的和就是564.牛牛现在给出一个sum,牛牛想让你求出一个正整数X经过上述过程的结果是sum.思路:abc...原创 2019-03-15 13:57:19 · 737 阅读 · 0 评论 -
2018校招真题【牛客网】练习(四)
1、删除重复字符题目描述:牛牛有一个由小写字母组成的字符串s,在s中可能有一些字母重复出现。比如在"banana"中,字母’a’和字母’n’分别出现了三次和两次。但是牛牛不喜欢重复。对于同一个字母,他只想保留第一次出现并删除掉后面出现的字母。请帮助牛牛完成对s的操作。思路:在每次加入时,判断是否已经存在。代码:import java.util.*;public class Main...原创 2019-03-11 11:59:20 · 1027 阅读 · 1 评论 -
2018校招真题【牛客网】练习(五)
1、拼凑正方形题目描述:牛牛有4根木棍,长度分别为a,b,c,d。羊羊家提供改变木棍长度的服务,如果牛牛支付一个硬币就可以让一根木棍的长度加一或者减一。牛牛需要用这四根木棍拼凑一个正方形出来,牛牛最少需要支付多少硬币才能让这四根木棍拼凑出正方形。思路:在最长和最短间找一个长度,使之长度差最小。代码:import java.util.*;public class Main{ p...原创 2019-03-12 14:09:23 · 763 阅读 · 0 评论 -
2018校招真题【牛客网】练习(六)
1、循环数比较题目描述对于任意两个正整数x和k,我们定义repeat(x, k)为将x重复写k次形成的数,例如repeat(1234, 3) = 123412341234,repeat(20,2) = 2020.牛牛现在给出4个整数x1, k1, x2, k2, 其中v1 = (x1, k1), v2 = (x2, k2),请你来比较v1和v2的大小。代码:import java.uti...原创 2019-03-13 20:03:35 · 404 阅读 · 0 评论 -
LeetCode经典编程题(一)
1. Min depth of Binary Tree题目描述Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.Solution...原创 2019-04-20 23:44:43 · 436 阅读 · 0 评论 -
LeetCode经典编程题(二)
1. sort-listDescriptionSort a linked list in O(n log n) time using constant space complexity.SolutionideaO(n log n) means that we can use quick sort or merge sort and so on.The java Collections....原创 2019-04-21 21:57:47 · 314 阅读 · 0 评论 -
LeetCode经典编程题(三)
1. binary-tree-preorder-traversalDescriptionGiven a binary tree, return the preorder traversal of its nodes’ values.For example:Given binary tree{1,#,2,3}, 1 \ 2 / 3return[1,2...原创 2019-04-23 17:18:52 · 127 阅读 · 0 评论 -
2018校招真题【牛客网】练习(八)
1、字节跳动附加题存在n+1个房间,每个房间依次为房间1 2 3…i,每个房间都存在一个传送门,i房间的传送门可以把人传送到房间pi(1<=pi<=i),现在路人甲从房间1开始出发(当前房间1即第一次访问),每次移动他有两种移动策略:A. 如果访问过当前房间 i 偶数次,那么下一次移动到房间i+1;B. 如果访问过当前房间 i 奇数次,那么移动到房间pi;现在路人甲想知道移动到...原创 2019-04-19 22:13:53 · 796 阅读 · 0 评论 -
LeetCode经典编程题(五)
1. copy-list-with-random-pointerDescriptionA linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of t...原创 2019-05-14 15:37:02 · 211 阅读 · 0 评论 -
LeetCode经典编程题(七)
1. palindrome-partitioning-iiDescriptionGiven a string s, partition s such that every substring of the partition is a palindrome.Return the minimum cuts needed for a palindrome partitioning of s.F...原创 2019-05-20 23:03:11 · 196 阅读 · 0 评论 -
LeetCode经典编程题(四)
linked-list-cycleDescriptionGiven a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?SolutionUse a fast pointer and a slow pointer. If there is...原创 2019-05-12 15:52:51 · 125 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(十三)
1、删除链表中的重复结点题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:遍历一次得到重复结点,然后再遍历一次删除多余结点。代码:/* public class ListNode {原创 2019-03-04 12:55:46 · 106 阅读 · 0 评论 -
2018校招真题【牛客网】练习(二)
1、等差数列题目描述:如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列思路:...原创 2019-03-09 13:03:39 · 267 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(二)
1、旋转数组的最小数字题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:找到分界点,返回最小元素即可。代码:import java.util.Ar...原创 2018-12-28 19:19:04 · 108 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(三)
二进制中1的个数题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示代码:public class Solution { public int NumberOf1(int n) { String str = Integer.toBinaryString(n); int count = 0; for(int i=0;...原创 2018-12-30 10:52:05 · 132 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(四)
1、合并两个排序链表题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:两个指针依次比较两个链表中的值,选择小的值链接,将这个指针向后移动一位,继续比较。当一个指针到末尾时就停止,把另外一个链表剩余的链接。代码:/*public class ListNode { int val; ListNode next = ...原创 2018-12-30 20:37:21 · 97 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(五)
1、栈的压入、弹出序列题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:使用一个ArrayList或Stack存放进入pus...原创 2019-01-07 21:39:13 · 102 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(六)
1、二叉搜索树与双向链表题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。...原创 2019-01-08 17:08:04 · 111 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(七)
1、整数中1出现的次数题目描述:求出1-13的整数中1出现的次数,并算出100-1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。思路:直接转成char[ ]统计代码:pu...原创 2019-02-01 19:28:13 · 128 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(八)
1、两个链表的第一个公共结点题目描述:输入两个链表,找出它们的第一个公共结点。思路:用两张ArrayList依次保存两个链表的值,如果当前结点在另一个ArrayList中出现,则是公共结点。代码:/*public class ListNode { int val; ListNode next = null; ListNode(int val) { ...原创 2019-02-04 11:53:05 · 139 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(十)
1、何为S的正数序列题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!思路:从1到S...原创 2019-02-28 19:47:16 · 117 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(十四)
1、序列化二叉树题目描述:请实现两个函数,分别用来序列化和反序列化二叉树思路:1、从二叉树到序列化:将二叉树的结点依次加入ArrayList,同时,如果该结点!=null,那么将它的左右子结点加入ArrayList,并得到序列化"val,";如果该结点==null,那么得到序列化"#,"2、从序列化到二叉树先得到所有结点(不带左右子结点)加入ArrayList,然后将结点依次取出,为...原创 2019-03-04 23:49:34 · 114 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(十一)
1、孩子们的游戏题目描述:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样...原创 2019-03-01 23:16:23 · 116 阅读 · 0 评论 -
剑指Offer行榜【牛客网】练习(十二)
1、构建乘积数组题目描述:给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。思路:方法1、暴力求解O(n^2)方法2、求得每一个数左侧和右侧的乘积O(n)代码:// method 1public class Solution { public in...原创 2019-03-03 16:09:08 · 95 阅读 · 0 评论 -
2018校招真题【牛客网】练习(一)
1、最大乘积题目描述:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)思路:找出最大三个和最小两个,返回最大三个乘积或最大和最小两个乘积。注意点:初值max0-max2赋值最小值,min0-min1赋值最大值。代码:import java.util.Scanner;public class Main{ ...原创 2019-03-06 19:53:39 · 215 阅读 · 0 评论 -
LeetCode经典编程题(六)
1. candyDescriptionThere are N children standing in a line. Each child is assigned a rating value.You are giving candies to these children subjected to the following requirements:Each child must h...原创 2019-05-16 22:25:13 · 162 阅读 · 0 评论