百度笔试汽车加油问题

每段的过程都有相似性,用递归可以实现 public class MinGasStation { public static int minGasStation(int numOfGS, int[] distOfGS, int[] ...

2019-04-02 22:50:53

阅读数 22

评论数 0

剑指Offer -滑动窗口的最大值(Java实现)

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

2019-02-28 22:41:47

阅读数 14

评论数 0

剑指Offer - 数据流中的中位数(Java实现)

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

2019-02-28 21:56:33

阅读数 14

评论数 0

剑指Offer - 二叉搜索树的第k个结点(Java实现)

题目描述: 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 二叉搜索树: 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列...

2019-02-25 21:59:15

阅读数 61

评论数 0

剑指Offer - 按之字形顺序打印二叉树(Java实现)

题目描述: 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 思路分析: 1、需要借助两个堆栈stack1,stack2。 2、stack1用于记录奇数层的节点数,stack2用于记录偶数层的节点数...

2019-02-24 14:24:06

阅读数 31

评论数 0

剑指Offer - 二叉树的下个节点

题目描述: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路分析: 根据中序遍历的特点分析即可。 1.首先分析节点的右子树,若存在找到该右子树的最左端的节点返回即可。 2.若不存在,这时候需要根据父节点...

2019-01-31 14:51:03

阅读数 19

评论数 0

剑指Offer - 删除链表中重复的结点(Java实现)

题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理...

2019-01-20 22:09:04

阅读数 16

评论数 0

剑指Offer - 链表中环的入口(Java实现)

题目描述: 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null 思路分析: 经典的双指针思路:快慢指针算法 算法分析参考牛客网大佬的算法分析 代码实现如下: //快慢指针的思路 /* public class ListNode { int val; L...

2019-01-16 22:53:37

阅读数 13

评论数 0

剑指Offer - 表示数值的字符串(Java实现)

题目描述: 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是&q...

2019-01-14 23:37:04

阅读数 34

评论数 0

剑指Offer - 构建乘积数组(Java实现)

题目描述: 给定一个数组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]。不能使用除法。 思路分析: 数组B每个位置的值就是数组A中除了同一位置上的那个数,数组中剩下的数的累积。一开始我想到的思...

2019-01-13 15:10:06

阅读数 21

评论数 0

剑指Offer - 把字符串转换成整数(Java实现)

题目描述: 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。数值为0或者字符串不是一个合法的数值则返回0。 思路分析: 将字符串转换成整数首先就应该确定字符串是整数字符串,第一位...

2019-01-11 15:46:25

阅读数 29

评论数 0

剑指Offer - 孩子们的游戏(圆圈中最后剩下的数)(Java实现)

题目描述: 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品...

2019-01-07 22:36:27

阅读数 62

评论数 0

剑指Offer - 扑克牌顺子(Java实现)

题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh,My God!”不是顺子…...

2019-01-06 15:36:03

阅读数 878

评论数 0

剑指Offer - 反转单词顺序(Java实现)

题目描述: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am...

2019-01-04 15:24:11

阅读数 42

评论数 0

剑指Offer - 和为S的两个字(Java实现)

题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。 思路分析: 假设a<b,则ab>(a-1)(b+...

2019-01-01 16:09:18

阅读数 740

评论数 0

剑指Offer - 和为S的连续正数序列(Java实现)

题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能...

2018-12-29 15:32:31

阅读数 17

评论数 0

剑指Offer - 二叉树的深度(Java实现)

题目描述: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路分析: 方法1:递归的思想解决问题。 public class Solution { public int TreeDepth(TreeNode r...

2018-12-24 15:04:29

阅读数 14

评论数 0

剑指Offer - 数字在排序数组中出现的次数(Java实现)

题目描述: 统计一个数字在排序数组中出现的次数 思路分析: 已下代码均通过牛客测试,主要工作只是在时间复杂度上的优化。 看到排序数组,然后又看到查找。首先就想到二分查找,开始的思路是先通过二分查找找出需要统计的那个数字,找到后再从那个位置依次向后遍历。代码如下: public c...

2018-12-22 17:33:00

阅读数 46

评论数 0

剑指Offer - 数组中的逆序对(Java实现)

暴力查找,时间复杂度O(N^2),运行超时。 public class Solution { public int InversePairs(int [] array) { if(array == null || array.length &...

2018-12-20 10:33:01

阅读数 31

评论数 0

剑指Offer-第一个只出现一次的字符(Java实现)

题目描述: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回-1(需要区分大小写). 思路分析: 方法一: 个人思路 比较粗暴,将字符串转换成字符数组,按顺序遍历字符数组。需...

2018-12-18 15:21:33

阅读数 178

评论数 0

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