题目: 给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如, [2,3,4] -> 2 / 3 / 4 。 但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。你需要找出怎么添加括号,才能得到最大的结果,并且返回相应的字符串格式的表达式。你的表达式不应该含有冗余的括号。 示例: 输入
387. 字符串中的第一个唯一字符 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。 示例 1: 输入: s = "leetcode"输出: 0示例 2: 输入: s = "loveleetcode"输出: 2示例 3: 输入: s = "aabb"输出: -1 提示: 1 <= s.length <= 105s 只包含
692. 前K个高频单词 给定一个单词列表 words 和一个整数 k ,返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率, 按字典顺序 排序。 示例 1: 输入: words = ["i", "love", "leetcode", "i", "love", "coding"], k = 2输出
这题看到的第一眼想法就是“栈”,因为只有最内层括号匹配了,才能匹配外层的括号 思路 要有正确的顺序,那么这样“({})”应该是非法的,“{{}}”这样应该也是非法,“(((())))”这样是否非法?不非法? 需要考虑的有两点 是否匹配 嵌套顺序 给的是一个字符串 从左到右依次扫描每一个字符,扫描到左括号(1
680. 验证回文字符串 Ⅱ 给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 示例 1: 输入: s = "aba"输出: true 示例 2: 输入: s = "abca"输出: true解释: 你可以删除c字符。 示例 3: 输入: s = "abc"输出: false 来源:力扣(LeetCode)链接:https://leetcode.cn/
题目 题解 我们只要确定从头确定 在多少位置即可 即 假如n=4 k=9 那么第一位数肯定是 1,2,3,4中的一个 由于k=9 所以根据大小排列以及平分(每个数是6 总排列有24个即4!)可以得到 第一个数应该是2 这样我们将2删掉 后面 继续前面的步骤即可 不过这样看起来很美好 但是根据大小排
题目: 给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中: answer[i] == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。answer[i] == "Fizz" 如果 i 是 3 的倍数。answer[i] == "Buzz" 如果 i 是 5 的倍数。answer[i] == i (以字
题目 题解 在力扣 题目54--螺旋矩阵中我们有了遍历的方法 那么我们修改一下然后 遍历时按照从1开始放入不就可以了 代码 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 int side(vector<vector<int>>& result, int up, int down, int left, int righ
496. 下一个更大元素 I nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。 给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。 对于每个 0 <= i < nums1.length ,找出满足 nums1[i] == nums2
503. 下一个更大元素 II 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存
最开始忽略了左子树为空还得计算右子树的叶子节点深度,直接分为左空右空和其他,对于其他认为直接返回0,导致会直接归入其他而报错! 改正后效果也挺一般: package leetcode01; //给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 publ
300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递
63. 不同路径 II 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物
题目 题解 在力扣 题目56--合并区间中我们有了合并的方法 那么我们不是可以直接让newInterval加入intervals然后执行56题的方法不就行了 复杂度有点高 我们可以根据排列插入这样 能删掉一行sort 然后可以找一下合并的大概区间其他的不用动这样复杂度应该就会大大降低了 (我这里只
自己先写了一下,还是不会做树! 下面是自己的代码,仍然有问题,甚至考虑这种思路会不会做不出来! package leetcode01; class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, Tr
两数相加,数以链表的形式存储,每隔节点存一位,还蛮有意思的,不过真的很容易走进误区哈哈 刚开始的想法满单纯的,把两个数提出来然后一位一位的写进去不就完了,一测试才发现,原来最大支持一百位啊,10的一百次方可是没法直接算了,我也明白了为什么要已这种形式存储了,既然这种方式不行,只能试
题目 题解 我们可以记录一下跳之后的最远距离 并把能够跳到的位置记录 一下 比如我们 vector<int> loop(nums.size(), 0); 当某个数可以被跳入时 对应位置的loop变为1 以3,2,1,0,4为例 一开始跳3 那么我们将 2,1,0 loop位置改为1 这样遍历到4时loop对应位置是0 即发现没有能
力扣题目索引 序号 题目 解法 难度 001 43.字符串相乘 (Multiply Strings) C++代码实现 中等难度
题目 题解 找四个边的范围然后根据规律放入即可 代码 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 int side(vector<vector<int>>& matrix, vector<int>& result, int m, int n, int up, int down, int left, int right) { 5
//注意这个ListNode类需要写在solution外面,要不然main里没法使用。而且main中类的新建要用 //自己写的: 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 //第一种思路的时候出错了 直接用l.next和l.next.next导致都混乱了 以后链
题目: 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。 示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat",&quo
纯暴力解 出现两个问题 1最开始设置i+1的平方da'yu等于x 会导致一部分测试数据出错 2最初对于测试数2147395600 一直bug 不断找问题最后才发现是后者的平方因为超int范围了 看完题解再补充吧 package leetcode01; import java.util.Scanner; public class OthersSolution {
题目 题解 代码1 使用multiset容器 multiset可以自动排序 1 multiset<int> transformation(string& str) { 2 multiset<int> res; 3 for (int i = 0; i < str.length(); i++) { 4 res.insert(str[i]); 5 } 6 return res; 7 } 得到的res去和保存之
还是暴力写法 转成数加一再压回 下面有错误 对于超过int类型的整数出错 还没有改好 class Solution { public int[] plusOne(int[] digits) { int sum=0; int count=0; int flag=0; int
给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是 等可能 的。 实现 Solution class: Solution(int[] nums) 使用整数数组 nums 初始化对象 int[] reset() 重设数组到它的初始状态并返回 int[] shuffle() 返回数组随机打乱后的结果 示