
学习
txwhmeng
这个作者很懒,什么都没留下…
展开
-
删除链表的倒数第 N 个结点(力扣)
给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]方法一:计算链表长度一种容易想到的方法是,我们首先从头节点开始对链表进行一次遍历,得到链表的长度 L。随后我们再从头节点开始对链表进行一次遍历,当遍..转载 2021-08-06 10:46:08 · 123 阅读 · 0 评论 -
杨辉三角(力扣)
给定一个非负整数numRows,生成「杨辉三角」的前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例2:输入: numRows = 1输出: [[1]]方法:杨辉三角,是二项式系数在三角形中的一种几何排列。它是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中...转载 2021-07-29 18:52:10 · 459 阅读 · 0 评论 -
反转字符串中的单词(力扣)(切记:java中String是不可变量)
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"思路与算法开辟一个新字符串。然后从头到尾遍历原字符串,直到找到空格为止,此时找到了一个单词,并能得到单词的起止位置。随后,根据单词的起止位置,可以将该单词逆序放到新字符串当中。如此循环多次,直到遍历完原字符串,就能得到翻转后的结果。class Solu转载 2021-07-29 14:51:57 · 152 阅读 · 0 评论 -
两个数组的交集 II(力扣)
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]解法:排序 + 双指针如果两个数组是有序的,则可以使用双指针的方法得到两个数组的交集。首先对两个数组进行排序,然后使用两个指针遍历两个数组。初始时,两个指针分别指向两个数组的头部。每次比较两个指针指向的两个数组中的数字转载 2021-07-28 15:22:48 · 178 阅读 · 0 评论 -
移动零(力扣)
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]一:暴力破解class Solution { public void moveZeroes(int[] nums) { int count=0; int a=0; for(int i=0;i<nums.length-1;i++){ if原创 2021-07-28 10:36:08 · 302 阅读 · 0 评论 -
合并两个有序数组(力扣)(直接插入排序)(按顺序插入)
给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1 的空间大小等于m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nums1 = [1]...转载 2021-07-27 17:20:28 · 484 阅读 · 0 评论 -
用两个栈实现队列(力扣)(duque的栈的使用,记录队列和双端队列)
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","deleteHead","appendTail.转载 2021-07-27 14:58:05 · 241 阅读 · 0 评论 -
旋转数组(力扣)(数组翻转)(数组拷贝)
给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为O(1) 的原地算法解决这个问题吗?示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]...转载 2021-07-27 11:43:01 · 225 阅读 · 0 评论 -
有序数组的平方(力扣)(冒泡排序)
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= nums.length <= 104-104 &.原创 2021-07-27 10:13:24 · 507 阅读 · 0 评论 -
二叉树中第二小的节点(力扣)(深度优先遍历)
给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为2或0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。更正式地说,root.val = min(root.left.val, root.right.val) 总成立。给出这样的一个二叉树,你需要输出所有节点中的第二小的值。如果第二小的值不存在的话,输出 -1 。示例 1:输入:root = [2,2,5,null,null,5,7]输出:5解释:最小的值是 2 ,第二小的值是 ...转载 2021-07-27 10:02:31 · 248 阅读 · 0 评论 -
第二高的薪水(力扣)
编写一个 SQL 查询,获取 Employee表中第二高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述Employee表,SQL查询应该返回200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。+---------------------+| SecondHi...原创 2021-07-26 15:32:10 · 333 阅读 · 0 评论 -
二分查找(力扣)
给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1来源:力扣(LeetCod...原创 2021-07-26 11:53:10 · 152 阅读 · 0 评论 -
最长递增子序列(力扣)
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,7,7.转载 2021-07-26 11:25:36 · 295 阅读 · 0 评论 -
整数与IP地址间的转换(牛客)
描述原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。举例:一个ip地址为10.0.3.193每段数字相对应的二进制数100000101000000000030000001119311000001组合起来即为:000010100000...转载 2021-07-22 17:16:14 · 197 阅读 · 0 评论 -
合唱队(牛客)
描述计算最少出列多少位同学,使得剩下的同学排成合唱队形说明:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,则他们的身高满足存在i(1<=i<=K)使得T1<T2<......<Ti-1<Ti>Ti+1>......>TK。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列...转载 2021-07-22 10:55:35 · 289 阅读 · 0 评论 -
字符串排序(牛客)
描述编写一个程序,将输入字符串中的字符按如下规则排序。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y注意有多组测试数据,即输入有多行,每一行单独处理(换行符隔开的表示不同行)输入描述:输入字符串输出描述:输出字符串示例.转载 2021-07-21 17:28:03 · 255 阅读 · 0 评论 -
简单密码(牛客)
描述密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈.接下来渊子要在密码之上再加一套密码,虽然简单但也安全。假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。他是这么变换的,大家都知道手机上的字母:1--1,abc--2,def--3,ghi--4,jkl--5,mno-...原创 2021-07-21 15:39:33 · 166 阅读 · 0 评论 -
密码验证合格程序( 牛客)
描述密码要求:1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有相同长度大于2的子串重复输入描述:一组或多组长度超过2的字符串。每组占一行输出描述:如果符合要求输出:OK,否则输出NG示例1输入:021Abc9000021Abc9Abc1021ABC9000021$bc9000输出:OKNGNGOKimport java.util.Scanner;public class M原创 2021-07-21 14:35:47 · 155 阅读 · 0 评论 -
简单错误记录(牛客)
描述开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。处理:1、记录最多8条错误记录,循环记录,最后只用输出最后出现的八条错误记录。对相同的错误记录只记录一条,但是错误计数增加。最后一个斜杠后面的带后缀名的部分(保留最后16位)和行号完全匹配的记录才做算是”相同“的错误记录。2、超过16个字符的文件名称,只记录文件的最后有效16个字符;3、输入的文件可能带路径,记录文件名称不能带路径。4、循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的...转载 2021-07-21 11:48:39 · 261 阅读 · 0 评论 -
识别有效的IP地址和掩码并进行分类统计(牛客)(学习)
请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。所有的IP地址划分为A,B,C,D,E五类A类地址1.0.0.0~126.255.255.255;B类地址128.0.0.0~191.255.255.255;C类地址192.0.0.0~223.255.255.255;D类地址224.0.0.0~239.255.255.255;E类地址240.0.0.0~255.255.255.255私网IP范围是:10.0.0..原创 2021-07-21 09:35:54 · 387 阅读 · 0 评论 -
最长回文子串(中心扩散法)
给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。所谓回文串,指左右对称的字符串。所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串(注意:记得加上while处理多个测试用例)输入描述:输入一个仅包含小写字母的字符串输出描述:返回最长回文子串的长度示例1输入:cdabbacc输出:4说明:abba为最长的回文子串 import java.util.Scanner;public class Main{ p转载 2021-07-20 17:19:44 · 234 阅读 · 0 评论 -
斐波那契 递归算法 迭代算法
public static int Fibonacci(int i) { if(i <= 0) { return 0; } if(i == 1 || i == 2) { return 1; } return Fibonacci(i -2) + Fibonacci(i-1); }转载 2021-07-20 13:46:18 · 230 阅读 · 0 评论 -
等差数列(牛客)(仅供自己参考)
功能:等差数列2,5,8,11,14。。。。输入:正整数N>0输出:求等差数列前N项和本题为多组输入,请使用while(cin>>)等形式读取数据输入描述:输入一个正整数。输出描述:输出一个相加后的整数。示例1输入:2输出:7import java.util.Scanner;public class Main{ public static void main(String[] args) { ..原创 2021-07-20 11:47:07 · 520 阅读 · 0 评论 -
坐标移动(牛客)
开发一个坐标计算工具,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S)+数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10;A1A;$%$;YAD;等。下面是一个简单的例子如:A10;S20;W10;D30;X;A1A;B10A11;;A10;处理过程:起点(0,0)+A10=...原创 2021-07-20 10:41:12 · 209 阅读 · 0 评论