牛客网编程题
牛客网编程题
dev_zyx
talk is cheap, show me code!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
面试题22. 链表中倒数第k个节点
题目:面试题22. 链表中倒数第k个节点题解:1. 题解一:统计一遍链表长度再遍历n-k个结点2. 题解二:快慢指针(双指针)代码:1. 代码一:统计一遍链表长度再遍历n-k个结点public class 面试题22 { private static ListNode createLinkedList(int[] arr) {// 将输入的数组输入到链表中 if (arr.length == 0) { return null;原创 2020-05-18 12:34:22 · 357 阅读 · 0 评论 -
234. 回文链表
题目:234. 回文链表题解:1. 题解一:快指针走到末尾,慢指针刚好到中间,其中慢指针将前半部分反转,然后比较反转后的前半部分与原来的后半部分是否相同。2. 题解二:其一,find mid node 使用快慢指针找到链表中点。 其二,reverse 逆序后半部分。 其三,check 从头、中点,开始比较是否相同。偶数节点情况:奇数节点情况:代码:1. 代码一:public class code234 { public static boolean isPali原创 2020-08-05 00:30:12 · 369 阅读 · 0 评论 -
3. 无重复字符的最长子串
题目:3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释...原创 2019-05-13 13:24:44 · 566 阅读 · 0 评论 -
N进制加法
思路:根据十进制加法的原理,我们实现N进制的加法。依旧是从末位开始逐位相加,并累加进位。代码:import java.util.*;public class N进制加法 { static String addByBase(String a, String b, int base) { StringBuffer ans = new StringBuffer(); int n = Math.max(a.length(), b.length()), car原创 2020-10-07 21:37:07 · 3011 阅读 · 0 评论 -
86. 分隔链表
题目86. 分隔链表题解代码/** * Definition for singly-linked list. public class ListNode { int val; ListNode * next; ListNode(int x) { val = x; } } */public class code86 { public static ListNo...原创 2019-08-24 17:41:45 · 411 阅读 · 0 评论 -
124. 二叉树中的最大路径和
题目:124. 二叉树中的最大路径和[编程题]二叉树的最大路径和题解:代码:public class code124 { int maxValue; public int maxPathSum(TreeNode root) { maxValue = Integer.MIN_VALUE; maxPathDown(root); return maxValue; } /** * 返回经过 node 的单原创 2020-09-30 22:08:20 · 343 阅读 · 0 评论 -
最长公共子串
题目:[编程题]最长公共子串题解:对比:1143. 最长公共子序列借助一下《图解算法》中的例子。假设对于两个字符串 fish 和 hish,我们可以绘制一个这样的表格,来求解它们最长的公共子串,即:注意,最长公共子串的最终答案并不一定在最后一个格子里,所以我们还需要一个变量 max 来记录最大值。注意:如果我们还需要知道具体的最长公共子串是什么,那么就需要再添加一个变量,记录最大值出现的位置,然后往前取最长公共子串的长度即可。代码:public class 最长公共子串 {原创 2020-09-16 18:05:32 · 775 阅读 · 0 评论 -
字符串碎片
题目:字符串碎片题解:所有块的总长度就是字符串的长度,数一下有多少块就行了。代码:import java.util.*;public class 字符串碎片 { public static void GetFragment (String str) { char c = str.charAt(0); int n = 1; // 统计不同的碎片的数量 for(int i = 1; i <原创 2020-09-07 23:48:54 · 415 阅读 · 0 评论 -
从n个数中选取m个数的所有组合
题目:n个数1,2,...,n,从这n个数中任意选m个数,输出所有不同组合,共有C(n,m)种不同组合。如n=4,m=2,会产生如下输出:1 2 1 3 2 3 1 4 2 4 3 4 如n=5,m=3,会产生如下输出:1 2 3 1 2 4 1 3 4 2 3 4 1 2 5 1 3 5 2 3 5 1 4 5 2 4 5 3 4 5 题解:1. 题解一:1. 选择第i(m <=i<=n)个元素作为每个组合的最后元素,在第1————i个元素中原创 2020-06-04 21:27:04 · 17899 阅读 · 1 评论 -
142. 环形链表 II
题目:142. 环形链表 II链表中环的入口结点[编程题]链表中环的入口结点题解:1. 题解一:利用set求解遍历链表的时候,用一个容器set依次装入链表的节点,如果发现有重复的节点,那么该节点就是链表的环的入口节点。2. 题解二:双指针(快慢指针)解释一:解释二:解释三:解释四:采用双指针的方法(这个方法还可以用来判断链表中有没有环),一个快指针一个慢指针,快指针一次走两步,慢指针一次走一步,如果链表中有环,那么两个指针一定就可以相遇,并且相遇的地方,一定在环的原创 2020-05-26 13:07:55 · 391 阅读 · 0 评论 -
序列和
题目:[编程题]序列和序列和题解:代码:import java.util.*;public class 序列和 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextInt()) { int N = sc.nextInt(); int L = sc.原创 2020-05-19 13:07:58 · 575 阅读 · 0 评论 -
字符串的全排列
题目:全排列字符串的排列题解:代码:import java.util.*;public class 全排列 { public static ArrayList<String> Permutation(String str) { ArrayList<String> ans = new ArrayList<>...原创 2020-04-30 16:53:26 · 509 阅读 · 0 评论 -
青蛙跳台阶
题目1:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?对于这道题,我第一眼看到的想法是用递归的做法的,用递归的方法做题,我觉得最重要的就是找出 这个函数与下一个函数之间的关系 以及 一个函数体结束的临界条件(即递归的结束)。例如就本题而言,1.第一步先找这个函数与下一个函数之间的关系:假如有n个台阶,跳上一个n级的台阶的跳法总数为f(n)...原创 2019-03-28 23:06:59 · 404 阅读 · 0 评论 -
用递归函数和栈操作逆序栈
链接:https://www.nowcoder.com/questionTerminal/ba7d7f5d1edf4d1690d66e12e951f6ea来源:牛客网题目:一个栈依次压入1,2,3,4,5那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现了栈中元素的逆序,请设计一个算法实现逆序栈的操作,但是只能用递归函数来实现,而不能用另外...原创 2019-04-25 17:19:47 · 951 阅读 · 2 评论
分享