其他
牛客编程
轻舟一曲
这个作者很懒,什么都没留下…
展开
-
使用链表实现一个栈以及实现一个min函数实现O(1)查找栈的最小值
整理下今天下午遇到的一个小细节或者说是小坑;就是不能直接用判断一个Integer的值和int的值是否相等尽管他们数值相等但是实际上使不相等的。class MinStack { //使用链表实现一个栈 public class Node{ int data; Node next; Node(){} Node(int data){ this.data=data; } N.原创 2021-03-15 20:42:08 · 168 阅读 · 0 评论 -
部分链表反转的递归和非递归解法
递归解法为递归算法的优美实例;非递归解法的细节非常重要,链表的连接我连错了好久,关键是要记住说白了就是不断在pre.next插入节点,而且要记住pre.next一定是最后才连接的。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val原创 2021-03-14 17:34:14 · 108 阅读 · 0 评论 -
哈希 & Switch 罗马数字转整数
题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通原创 2020-12-07 23:01:07 · 374 阅读 · 0 评论 -
最大子序和之动态规划
题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。public class MaxSubArray_53 { public int Solve(int[] nums) { int dp=nums[0]; int max=nums[0]; for (int i = 1原创 2020-12-07 22:00:11 · 59 阅读 · 0 评论 -
回文数-正读和反读
题目判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。注意非法1:负数非法2:末尾数为0package Leetcode;public class IsPalindrome { public boolean Solve(int x) { /*if(x<0||(x%10==0&&x!=原创 2020-12-07 17:17:59 · 1235 阅读 · 0 评论 -
整数反转___尾数取余法
题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。注意点样例:1 534236469注意点:此时已经是9亿了,如果再相加的话result就已经发生了溢出解决方法:接近最值提前1位进行判断package Leetcode;public class IntegerReverse { public i原创 2020-12-07 16:40:32 · 296 阅读 · 0 评论 -
双指针法--牛牛的独特子序列
题目描述牛牛现在有一个长度为len只包含小写字母‘a’-'z’的字符串x,他现在想要一个特殊的子序列,这个子序列的长度为3n(n为非负整数),子序列的第[1,n]个字母全部为‘a’,子序列的[n+1,2n]个字母全部为‘b’,子序列的[2n+1,3n]个字母全部为‘c’,牛牛想知道最长的符合条件的独特子序列的长度是多少。public class maxnumlength { public int solve (String x) { // write code here原创 2020-12-11 10:47:33 · 204 阅读 · 0 评论 -
栈之牛牛与后缀表达式
题目描述注意点利用栈先进先出的特点进行求解。注意点1:Stack stack=new Stack();注意点2:current=i+1; 需要在#,+,-,*都要进行;package niuniu;import java.util.*;public class later { public long solve (String str) { long len=str.length(); Stack<Long> stack=new Sta原创 2020-12-07 15:44:22 · 212 阅读 · 0 评论 -
动态规划之Bang! Bang!
题目描述注意点首先是思考问题:这题的动态思路先是想dp坐标的i,j的意义:关键是选与不选初始化:当只有选择一个的时候注意点:合法性特例:当m==0时候组合数应该是1package niuniu;public class bang { public long solve_bangbang (int n, int m, int k) { // write code here //定义动态规划数组,dp[i][j]表示在前i个字符中选择j个重音符的组原创 2020-12-07 12:25:39 · 120 阅读 · 0 评论 -
String II
题目描述注意点首先是思考问题:一共可以走k步求可能靠拢的最多,最后字符都相等。字符相等->每个字符都算一下在有限步骤k下能选多少->该变那些呢->应该先变距离它最近的->数组存储。memset函数->Arrays.fill函数。package Learn;import java.util.Arrays;import java.util.Scanner;public class niuniustringii { public int string原创 2020-12-04 22:11:15 · 131 阅读 · 0 评论 -
牛牛做除法II
题目描述注意点首先是应该思考数学公式x=ay+b,要使得x最大那么就必须使得y最大,而y最大的位ay+b<=n,所以x最大为y=(n-b)/a ;x=a*y+b;其次注意n<a的时候还有就是注意题目条件比如b肯定小于a,a不会等于0package Learn;public class niuniumin { public int solve (int a, int b, int n) { // write code here int x=原创 2020-12-04 22:05:42 · 156 阅读 · 0 评论 -
非常怕npy的牛牛
怕npy的牛牛题目描述题目描述牛牛非常怕他的女朋友,怕到了走火入魔的程度,以至于每当他看到一个字符串同时含有n,p,y三个字母他都害怕的不行。现在有一个长度为m的只包含小写字母‘a’-‘z’的字符串x,牛牛想知道能令他不害怕的最长子串的长度是多少。(对于字符串”abc”来说,”c”,”ab”都是原串的子串,但”ac”不是原串子串)输入“ypknnbpiyc”返回值7说明“pknnbpi”为其符合条件的最长子串,长度为7。package Learn;import java.util.原创 2020-12-03 20:29:11 · 93 阅读 · 0 评论 -
快排qsort的细节问题
快排qsort递归函数找轴值函数划分函数细节问题递归函数终止条件,选轴值,放最后,找划分,与最后交换,左右两边再递归找轴值函数划分函数两边走,停止交换要加减,返回左位置细节问题这次重写快速排序,发现了一些细节问题都没有注意到,主要是划分函数两边的指针走动时候什么时候停止此时又是什么情况。强调文本 强调文本细节一:必须先左后右,如果相反的,r停再l处,而l是小于轴值的话不应调换细节二:划分函数当输入的参数l,r相等时,而A[l]又小于pivots时候应该换它//递归函数qsort:终原创 2020-12-02 16:58:00 · 181 阅读 · 0 评论