
经典习题
水果篮子~
这个作者很懒,什么都没留下…
展开
-
回文相关题目
一、验证回文串题目描述:验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串思路:先将字符串提取出来,再验证是否是回文class Solution { public boolean isPalindrome(String原创 2022-02-25 15:27:44 · 68 阅读 · 0 评论 -
字符串压缩
题目描述:字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:"aabcccccaaa"输出:"a2b1c5a3"示例2:输入:"abbccd"输出:"abbccd"解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。思路:遍历字符串,用count记录...原创 2021-10-27 22:34:46 · 4227 阅读 · 0 评论 -
将数组的奇数放在前面,偶数放在后面
场景一:将所有的奇数放在前面,偶数放在后面。思路:定义左右游标,left和right,当left和right没有相遇的时候,先从左边开始遍历,如果遇到的是偶数,left++,继续寻找,直到找到一个奇数,同理,从右边开始找,找到一个偶数,此时,如果left和right没有相遇,那么交换两个位置的数字。public class even { public static int[] evenOdd(int[] arr){ int left = 0; int right原创 2021-10-09 19:30:03 · 3530 阅读 · 0 评论 -
爬楼梯(递归)
描述:假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶思路:此题可以推导为 1+2+3+5+8... 当求n时,其实就是求第n个加数的值,从第三个加数开始,都有以下规律,就是这个加数等于前两个加数之和。我们可以设置k,j两个变量,分别表示n-2,n-1的加数每次循环,需要将k...原创 2021-08-22 22:19:06 · 719 阅读 · 0 评论 -
数组中重复的数字
描述:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3思路:方法一:由于只需要找出数组中任意一个重复的数字,因此遍历数组,遇到重复的数字即返回。为了判断一个数字是否重复遇到,使用集合存储已经遇到的数字,如果遇到的一个数字已经在集合中,则当前的数字是重复原创 2021-08-21 22:10:48 · 143 阅读 · 0 评论 -
最小的斐波那契数
Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。import java.util.Scan原创 2021-08-19 20:13:10 · 581 阅读 · 0 评论 -
删除造序(二维数组按列遍历)
一、二维数组的第一行遍历结束,再遍历第二行二、二维数组按列打印package com.everyday.day11;import java.util.Arrays;/** * @program: sixiang * @description * @author: wenwen * @create: 2021-08-05 16:58 **/public class Erwei { public static void main(String[] args) { .原创 2021-08-05 17:13:46 · 251 阅读 · 0 评论 -
返回第三大数
描述:给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。示例 1:输入:[3, 2, 1]输出:1解释:第三大的数是 1 。示例 2:输入:[1, 2]输出:2解释:第三大的数不存在, 所以返回最大的数 2 。思路:由题目描述知,要在无重复数字的数组中,找出第三大的数字,如果没有三个数,返回最大的那个数字。步骤:先对数组进行排序无重复的添加到list集合中在这排序并且去重之后的集合中,找出第三大的数字(不足三个返回最后一个)。class So原创 2021-08-03 18:28:13 · 1157 阅读 · 0 评论 -
丢失的数字
题目描述:给定一个包含[0, n]中n个数的数组nums,找出[0, n]这个范围内没有出现在数组中的那个数。思路:找出[0, n]这个范围内没有出现在数组中的那个数,可以定义一个集合,把原来数组中的所有数字无重复的添加进去,然后遍历0~n,查看集合中是否有没出现在0~n中的数字,返回即可。class Solution { public int missingNumber(int[] nums) { HashSet<Integer> se...原创 2021-08-01 15:18:24 · 91 阅读 · 0 评论 -
输入二进制字符串求和
题目一:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "1111", b = "1111"输出: "10000"思路:由于是从后往前计算的结果依次相加,所以最后需要反转,输出结果集。如果每个字符遍历结束了,carray == 1,那么输出的结果再加1(最高位相加为2 或者 3,进位为1)。 public static void sumBinary(String a,String b...原创 2021-07-31 11:38:14 · 842 阅读 · 0 评论 -
重复的DNA序列
所有 DNA 都由一系列缩写为 'A','C','G' 和 'T' 的核苷酸组成,例如:"ACGAATTCCG"。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。示例 1:输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输出:["AAAAACCCCC","CCCCCAAAAA"]示例 2:输入:s = "AAAAAAAAAAAAA"原创 2021-07-30 15:11:58 · 476 阅读 · 0 评论 -
求一个数的二进制
输入一个数字n,要求出数字n的二进制方法一: public static String binary(int n){ StringBuffer stringBuffer = new StringBuffer(); while(n != 0){ stringBuffer.append(n % 2); n = n / 2; } return stringBuffer.reverse(.原创 2021-07-29 17:36:20 · 580 阅读 · 0 评论 -
Excel表序列号
给定一个Excel表格中的列名称,返回其相应的列序号。例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28示例 1:输入: "ZY"输出: 701思路:由题目描述知:此问题相当于求解26进制A=》1*26^0AA=>1*26^1 + 1*26^0;ZY=>26*26^1+25*26^0;......因为...原创 2021-07-29 16:45:04 · 397 阅读 · 0 评论 -
验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串示例 2:输入: "race a car"输出: false解释:"raceacar" 不是回文串思路:首先应该明白,最后要判断的是去掉空格,逗号,冒号等特殊字符之后的字符串是不是回..原创 2021-07-27 22:43:54 · 374 阅读 · 0 评论 -
数字的最后一位加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。思路:由题目描述知,可能会有两种情况1.数字全部为9 ;这种情况需要数组扩容..原创 2021-07-27 15:03:42 · 512 阅读 · 0 评论 -
编写一个函数来查找字符串数组中的最长公共前缀
。如果不存在公共前缀,返回空字符串 ""。 示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"思路:令最长公共前缀 first的值为第一个字符串,进行初始化 遍历后面的字符串,依次将其与 first 进行比较,两两找出公共前缀(每次都跟第一个字符串的字符比较,如果对应的字符不相等,则跳出第一层循环,在first上截取[0,j)的字符串,最终结果即为最长公共前缀 如果查找过程中出现了 first 为空的情况,则公共前缀不存在直接返回class So原创 2021-07-27 09:11:07 · 2068 阅读 · 0 评论