
nowcoder
牛客网刷题
换名换一年
学习使我快乐!
展开
-
Java Nowcoder ----- 合并两个排序的链表
合并两个排序的链表1.题目描述2.题目示例3.思路及代码1.题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。2.题目示例3.思路及代码思路一:迭代1.找出两个链表中先取出的节点2.放入新链表中代码:/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val;原创 2020-11-18 17:12:32 · 158 阅读 · 0 评论 -
Java Nowcoder ------ 把数组排成最小的数
把数组排成最小的数1.题目描述2.题目示例3.思路及代码1.题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。2.题目示例例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。3.思路及代码思路:利用排序思想代码:import java.util.*;public class Solution { public String PrintMinNumber(int [] numbers) {原创 2020-11-09 22:31:58 · 155 阅读 · 0 评论 -
Nowcoder ---矩形覆盖
矩形覆盖1.题目描述2.题目示例3.思路及代码1.题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?2.题目示例3.思路及代码思路:这其实是一个简单的动态规划,规律符合斐波拉契数列的性质代码:public class Solution { public int RectCover(int target) { if(target < 2){ retur原创 2020-11-04 19:36:36 · 148 阅读 · 0 评论 -
Nowcoder ---- 重建二叉树
重建二叉树1.题目描述2.题目示例3.思路及代码1.题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。2.题目示例3.思路及代码思路:递归根据前序找到根节点根据根节点在中序中找到左右子树依此递归即可代码:/** * Definition for binary tree * pu原创 2020-11-03 19:46:42 · 200 阅读 · 0 评论 -
Nowcoder ----- 从尾到头打印链表(多种解法)
从尾到头打印链表1.题目描述2.题目示例3.思路及代码1.题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。2.题目示例3.思路及代码思路一:利用栈先进后出的性质,就可以实现反转的效果代码:/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = va原创 2020-11-03 13:50:22 · 161 阅读 · 0 评论 -
Nowcoder----替换空格
替换空格1.题目描述2.题目示例3.思路及代码1.题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。2.题目示例例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。3.思路及代码思路:先找出空格个数,设置新的字符串的长度然后从后往前遍历进行替换即可代码:public class Solution { public String replaceSpace(StringBuffer str) {原创 2020-11-03 11:41:54 · 143 阅读 · 0 评论 -
Nowcoder ------ 数组中出现次数超过一半的数字(三种解法)
数组中出现次数超过一半的数字1.题目描述2.题目示例3.思路及代码1.题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。2.题目示例3.思路及代码思路一:利用map,存放的时候就进行一次判断即可import java.util.*;public class Solution { public int MoreT原创 2020-11-02 11:10:36 · 206 阅读 · 0 评论 -
Nowcoder ------- 调整数组顺序使奇数位于偶数前面
调整数组顺序使奇数位于偶数前面1.题目描述2.题目示例3.思路及代码1.题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。2.题目示例给定数组为:[1,2,3,4,5,6]输出为:[1,3,5,2,4,6]3.思路及代码思路一:利用额外的空间代码:public class Solution { public void reOrderArray(i原创 2020-11-01 22:32:33 · 139 阅读 · 0 评论 -
Nowcoder ------- 旋转数组的最小数字
旋转数组的最小数字1.题目描述2.题目示例3.思路及代码1.题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。2.题目示例3.思路及代码思路一:暴力循环即可思路二:利用有序的性质,二分查找,在最坏的情况使用线性探测(但是好像用例中没有这种用例)代码:import java.util.ArrayList;public class Sol原创 2020-11-01 21:59:30 · 744 阅读 · 0 评论 -
Nowcoder -----二维数组中的查找
二维数组中的查找ps:查找的本质是排除的过程1.题目描述2.题目示例3.思路及代码ps:查找的本质是排除的过程1.题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。2.题目示例3.思路及代码思路一:暴力,逐个排除思路二:一次排除一行或者一列,根据题目所给的数组的性质代码:暴力代码省略public class Solution {原创 2020-11-01 21:22:43 · 183 阅读 · 0 评论