题目 给你一个字符串s和一个字符串数组dictionary,找出并返回dictionary中最长的字符串,该字符串可以通过删除s中的某些字符得到。 如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串。   示例1: 输入:s="abpcplea",dictionary=["ale","apple","monkey","plea"] 输出:"apple" 示例2: 输入:s="abpcplea",dictionary=["a","b","c"] 输出:"a" 代码实现 classSolution{ publicStringfindLonges...

题目 给定一个二进制数组nums,找到含有相同数量的0和1的最长连续子数组,并返回该子数组的长度。   示例1: 输入:nums=[0,1] 输出:2 说明:[0,1]是具有相同数量0和1的最长连续子数组。 示例2: 输入:nums=[0,1,0] 输出:2 说明:[0,1](或[1,0])是具有相同数量0和1的最长连续子数组。 代码实现 classSolution{ publicintfindMaxLength(int[]nums){ intmaxLength=0; Map<Integer,Integer>map=newHashMap<Integer,I...

  27ZCvWSIk5Mp   2023年12月22日   14   0   0 子数组i++i++MathMath子数组

题目 假设有从1到n的n个整数。用这些整数构造一个数组perm(下标从1开始),只要满足下述条件之一,该数组就是一个优美的排列: perm[i]能够被i整除 i能够被perm[i]整除 给你一个整数n,返回可以构造的优美排列的数量。   示例1: 输入:n=2 输出:2 解释: 第1个优美的排列是[1,2]:   perm[1]=1能被i=1整除   perm[2]=2能被i=2整除 第2个优美的排列是[2,1]:   perm[1]=2能被i=1整除   i=2能被perm[2]=1整除 示例2...

  27ZCvWSIk5Mp   2023年12月22日   10   0   0 Listi++整除i++List整除

题目 给你一个mxn的二元矩阵matrix,且所有值被初始化为0。请你设计一个算法,随机选取一个满足matrix[i][j]0的下标(i,j),并将它的值变为1。所有满足matrix[i][j]0的下标(i,j)被选取的概率应当均等。 尽量最少调用内置的随机函数,并且优化时间和空间复杂度。 实现Solution类: Solution(intm,intn)使用二元矩阵的大小m和n初始化该对象 int[]flip()返回一个满足matrix[i][j]0的随机下标[i,j],并将其对应格子中的值变为1 voidreset()将矩阵中所有的值重置为0   示例: 输入 ["Sol...

题目 给你一个字符串s,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。   示例1: 输入:s="bbbab" 输出:4 解释:一个可能的最长回文子序列为"bbbb"。 示例2: 输入:s="cbbd" 输出:2 解释:一个可能的最长回文子序列为"bb"。 代码实现 classSolution{ publicintlongestPalindromeSubseq(Strings){ intn=s.length(); int[][]dp=newint[n][n]; for(inti=n1...

题目 给定一个二叉树的根节点root,请找出该二叉树的最底层最左边节点的值。 假设二叉树中至少有一个节点。   示例1: 输入:root=[2,1,3] 输出:1 示例2: 输入:[1,2,3,4,null,5,6,null,null,7] 输出:7 代码实现 classSolution{ intcurVal=0; intcurHeight=0; publicintfindBottomLeftValue(TreeNoderoot){ intcurHeight=0; dfs(root,0); returncurVal; } publicvoiddfs(Tre...

题目 斐波那契数(通常用F(n)表示)形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是: F(0)=0,F(1)=1 F(n)=F(n1)+F(n2),其中n>1 给定n,请计算F(n)。   示例1: 输入:n=2 输出:1 解释:F(2)=F(1)+F(0)=1+0=1 示例2: 输入:n=3 输出:2 解释:F(3)=F(2)+F(1)=1+1=2 示例3: 输入:n=4 输出:3 解释:F(4)=F(3)+F(2)=2+1=3 代码实现 classSolution{ publicintfib(intn){ if...

题目 对于一个正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为「完美数」。 给定一个整数n,如果是完美数,返回true;否则返回false。   示例1: 输入:num=28 输出:true 解释:28=1+2+4+7+14 1,2,4,7,和14是28的所有正因子。 示例2: 输入:num=7 输出:false 代码实现 classSolution{ publicbooleancheckPerfectNumber(intnum){ if(num1){ returnfalse; } intsum=1; for(intd=2;dd<=num;d){ i...

  27ZCvWSIk5Mp   2023年12月05日   20   0   0 代码实现代码实现

题目 给定一个整数num,将其转化为7进制,并以字符串形式输出。   示例1: 输入:num=100 输出:"202" 示例2: 输入:num=-7 输出:"-10" 代码实现 classSolution{ publicStringconvertToBase7(intnum){ if(num0){ return"0"; } booleannegative=num<0; num=Math.abs(num); StringBufferdigits=newStringBuffer(); while(num>0){ digits.append(num%7); num/=...

  27ZCvWSIk5Mp   2023年12月04日   15   0   0 字符串gitMathMath字符串git

题目 假设力扣(LeetCode)即将开始IPO。为了以更高的价格将股票卖给风险投资公司,力扣希望在IPO之前开展一些项目以增加其资本。由于资源有限,它只能在IPO之前完成最多k个不同的项目。帮助力扣设计完成最多k个不同项目后得到最大总资本的方式。 给你n个项目。对于每个项目i,它都有一个纯利润profits[i],和启动该项目需要的最小资本capital[i]。 最初,你的资本为w。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。 总而言之,从给定项目中选择最多k个不同项目的列表,以最大化最终资本,并输出最终可获得的最多资本。 答案保证在32位有符号整数范围内。 ...

  27ZCvWSIk5Mp   2023年11月25日   21   0   0 代码实现代码实现

题目 假设力扣(LeetCode)即将开始IPO。为了以更高的价格将股票卖给风险投资公司,力扣希望在IPO之前开展一些项目以增加其资本。由于资源有限,它只能在IPO之前完成最多k个不同的项目。帮助力扣设计完成最多k个不同项目后得到最大总资本的方式。 给你n个项目。对于每个项目i,它都有一个纯利润profits[i],和启动该项目需要的最小资本capital[i]。 最初,你的资本为w。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。 总而言之,从给定项目中选择最多k个不同项目的列表,以最大化最终资本,并输出最终可获得的最多资本。 答案保证在32位有符号整数范围内。 ...

  27ZCvWSIk5Mp   2023年11月25日   16   0   0 代码实现代码实现

题目 给你一个含重复值的二叉搜索树(BST)的根节点root,找出并返回BST中的所有众数(即,出现频率最高的元素)。 如果树中有不止一个众数,可以按任意顺序返回。 假定BST满足如下定义: 结点左子树中所含节点的值小于等于当前节点的值 结点右子树中所含节点的值大于等于当前节点的值 左子树和右子树都是二叉搜索树   示例1: 输入:root=[1,null,2,2] 输出:[2] 示例2: 输入:root=[0] 输出:[0] 代码实现 classSolution{ List<Integer>answer=newArrayList<Integer&...

题目 给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中至少有两个元素。你可以按任意顺序返回答案。 数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。   示例1: 输入:nums=[4,6,7,7] 输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]] 示例2: 输入:nums=[4,4,3,2,1] 输出:[[4,4]] 代码实现 classSolution{ List<Integer>temp=newArrayList<...

题目 你正在参与祖玛游戏的一个变种。 在这个祖玛游戏变体中,桌面上有一排彩球,每个球的颜色可能是:红色'R'、黄色'Y'、蓝色'B'、绿色'G'或白色'W'。你的手中也有一些彩球。 你的目标是清空桌面上所有的球。每一回合: 从你手上的彩球中选出任意一颗,然后将其插入桌面上那一排球中:两球之间或这一排球的任一端。 接着,如果有出现三个或者三个以上且颜色相同的球相连的话,就把它们移除掉。 如果这种移除操作同样导致出现三个或者三个以上且颜色相同的球相连,则可以继续移除这些球,直到不再满足移除条件。 如果桌面上所有球都被移除,则认为你赢得本场游戏。 重复这个过程,直到你赢了游戏或者手中没有更多的...

题目 给你一个整数数组nums。玩家1和玩家2基于这个数组设计了一个游戏。 玩家1和玩家2轮流进行自己的回合,玩家1先手。开始时,两个玩家的初始分值都是0。每一回合,玩家从数组的任意一端取一个数字(即,nums[0]或nums[nums.length1]),取到的数字将会从数组中移除(数组长度减1)。玩家选中的数字将会加到他的得分上。当数组中没有剩余数字可取时,游戏结束。 如果玩家1能成为赢家,返回true。如果两个玩家得分相等,同样认为玩家1是游戏的赢家,也返回true。你可以假设每个玩家的玩法都会使他的分数最大化。   示例1: 输入:nums=[1,5,2] 输出:f...

  题目 给定一个二进制数组nums,计算其中最大连续1的个数。   示例1: 输入:nums=[1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续1,所以最大连续1的个数是3. 示例2: 输入:nums=[1,0,1,1,0,1] 输出:2 代码实现 classSolution{ publicintfindMaxConsecutiveOnes(int[]nums){ intmaxCount=0,count=0; intn=nums.length; for(inti=0;i<n;i){ if(nums[i]1){ count; }el...

  27ZCvWSIk5Mp   2023年11月19日   15   0   0 i++i++二进制数MathMath二进制数

题目 以字符串的形式给出n,以字符串的形式返回n的最小好进制 。 如果n的 k(k>=2)进制数的所有数位全为1,则称k(k>=2)是n的一个好进制。   示例1: 输入:n="13" 输出:"3" 解释:13的3进制是111。 示例2: 输入:n="4681" 输出:"8" 解释:4681的8进制是11111。 示例3: 输入:n="1000000000000000000" 输出:"999999999999999999" 解释:1000000000000000000的999999999999999999进制是11。   代码实现...

  27ZCvWSIk5Mp   2023年11月18日   13   0   0 字符串进制Math进制Math字符串

题目 给定一个许可密钥字符串s,仅由字母、数字字符和破折号组成。字符串由n个破折号分成n+1组。你也会得到一个整数k。 我们想要重新格式化字符串s,使每一组包含k个字符,除了第一组,它可以比k短,但仍然必须包含至少一个字符。此外,两组之间必须插入破折号,并且应该将所有小写字母转换为大写字母。 返回重新格式化的许可密钥。   示例1: 输入:S="5F3Z-2e-9-w",k=4 输出:"5F3Z-2E9W" 解释:字符串S被分成了两个部分,每部分4个字符;   注意,两个额外的破折号需要删掉。 示例2: 输入:S="2-5g-3-J",k=2 输出:"...

题目 冬季已经来临。你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。 在加热器的加热半径范围内的每个房屋都可以获得供暖。 现在,给出位于一条水平线上的房屋houses和供暖器heaters的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。 注意:所有供暖器heaters都遵循你的半径标准,加热的半径也一样。   示例1: 输入:houses=[1,2,3],heaters=[2] 输出:1 解释:仅在位置2上有一个供暖器。如果我们将加热半径设为1,那么所有房屋就都能得到供暖。 示例2: 输入:houses=[1,2,3,4],heaters=[1,4] 输出...

  27ZCvWSIk5Mp   2023年11月15日   16   0   0 代码实现MathMath代码实现

题目 对整数的二进制表示取反(0变1,1变0)后,再转换为十进制表示,可以得到这个整数的补数。 例如,整数5的二进制表示是"101",取反后得到"010",再转回十进制表示得到补数2。 给你一个整数num,输出它的补数。   示例1: 输入:num=5 输出:2 解释:5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。 示例2: 输入:num=1 输出:0 解释:1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。   代码实现 classSolution{ publicintfindComplement(intnum){ ...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~