首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
喜中双色球
度小满_研发
西安交通大学
2020届
Java工程师
关注
私信
加入黑名单
举报TA
首页
刷题
圈子
项目
笔记
基本资料
真题试卷
在线编程
心理测试
回答的问题(12)
按之字形顺序打印二叉树
1
分享思路: 一个队列+一个栈。队列按照每层从左到右存放; 如果是奇数层的话,把当前队列里的节点依次放入list(同时队列加入子节点,顺序保持是从左至右); 如果是偶数层的话,先把当前队列里的节点放入栈后(同时队列加入子节点,顺序保持从左至右),...
发表于 2019-08-28 16:00:39
滑动窗口的最大值
0
List存储滑动窗口最大值,Deque存储走过的最大值的下标。每次新加入Deque的元素从后往前走,删掉小于新元素的值。Deque的首元素保持为当前窗口的最大值。 public ArrayList<Integer> maxInWindows(int[] num, int size)...
发表于 2019-08-23 23:14:33
字符流中第一个不重复的字符
0
import java.util.*; public class Solution { public Queue<Character> queue = new LinkedList<Character>(); public int[] charCount = ...
发表于 2019-03-28 15:47:07
字符串的排列
1
1.对于str里面的字符,应由每个字符轮流当做开头字符,所以交换start和当前位置的元素; 2.对于剩下的字符又是一个str,作为新str可以进入递归求解; 3.当前字符已经作为开头字符迭代完毕,则回归原位,由下一个字符开始做开头字符。 public ArrayList<...
发表于 2019-02-25 14:23:39
链表中环的入口结点
1
1.先找是否有环 2.找出环中节点个数n 3.两个指针节点,一个先走n步,一个再走,会在入口处相遇 public ListNode EntryNodeOfLoop(ListNode pHead) { if(pHead==nul...
发表于 2019-02-24 13:43:38
删除链表中重复的结点
1
可以简单地分为,头结点是重复元素和头结点不是重复元素。 设置两个节点,一个为当前节点pNode,一个为空preNode,后续将指向当前节点的上一个节点。 1.如果头结点是重复元素,那就找到下一个不等于该值得元素,并将其作为头结点,进行下一次循环; 2.如果头结点不是重复元素,再判定...
发表于 2019-02-22 10:19:34
旋转数组的最小数字
1
二分查找,如果中间元素值大于最右边元素,那么肯定就在右边部分;如果中间元素小于或者等于最右边元素,那么肯定就在左边部分;如果最后剩下两个元素,最小元素在左边。 public int minNumberInRotateArray(int [] array) { int len = ...
发表于 2019-02-20 09:25:35
替换空格
1
从前往后挪的话,时间复杂度是O(n2);从后往前挪的话,时间复杂度为O(n)。 所以选择从后往前挪,先确定空格个数,然后分配足够空间,就开始从后往前遍历。 public String replaceSpace(StringBuffer str) { if(str==null)...
发表于 2019-02-19 22:01:08
顺时针打印矩阵
24
1.每次都是一个圈,所以定义四个变量限定每次循环的界限: startRow,endRow,startCol,endCol; 2.分别把首行,末列,末行,首列的数据依次加入list; 3.注意不要重复加入某个点,每次都要限定界限。 代码如下: public ArrayList<Int...
发表于 2017-12-04 21:42:28
合并两个排序的链表
1
遍历一遍,复杂度O(n)。 public ListNode Merge(ListNode list1,ListNode list2) { if(list1==null) return list2; if(list2==...
发表于 2017-11-29 20:38:03
首页
上一页
1
2
下一页
末页
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题