
leetCode
@大愚@
追光的人
展开
-
LeetCode13题解
罗马数字转整数。原创 2023-05-19 23:22:18 · 231 阅读 · 0 评论 -
leetCode26题::java
前言给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,*那么 nums 的前 k 个元素应该保存最终结果。*将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。正文思路:原创 2022-05-18 10:15:43 · 236 阅读 · 0 评论 -
leetCode::14. 最长公共前缀::java
前言题目要求: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl” 示例 2:示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:“”解释:输入不存在公共前缀。思路:要求公共的前缀(就是字符串数组中每个字符公共的开头部分),所以我们可以先假定一个公共前缀即字符串数组中的某一个字符串,通过遍历整个字符数组取出每个字符判原创 2022-05-16 22:46:03 · 157 阅读 · 0 评论 -
leetcode:3. 无重复字符的最长子串:java
前言题目:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。思路用窗口的方法,因为题目要求这个字串是不含有重复的字符,所以可以通过窗口滑动的方式前进,如果有重复通过改变窗口的左侧的边界来把重复的字符进行过滤left = Math.max(left,map.get(s.charAt(i)) + 1 );。如果是abca这样的形式 此时就会将窗口的左边界右移一位,如果是abb这种的就直接筛选掉b字符及其之前的字符。通过 maxLen = Math.max(maxLen,i - l原创 2022-05-10 22:23:04 · 696 阅读 · 0 评论 -
LeetCode 移除元素-27::java
**题目:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。**思路:因为这个题是:不需要考虑数组中超出新长度后面的元素。所以可以把和输入的数字不同的值依次放在前面这样得到的就是一个不包含有输入的目标值的新数组/** * FileName: Remove_Dome27 * Author: 8原创 2022-03-15 21:32:41 · 592 阅读 · 0 评论 -
leetCode:二进制加法67::java
**思路:用计算机模拟人类的进位计算第一步:让遍历字符串的顺序和二进制取值计算的顺序一致,所以逆序遍历字符串第二步:取出对应位上的值进行计算 number1 + number2 + sign(前一个是否进位)第三步:判断第二步的计算是否要进位,因为这是二进制最大为1 当值 >= 2时说明此时发生了进位,sign + 1,在和在对2取余,如果number1,2,sign都为3此时这个位应该为1 .(3% 2 = 1)第四步:最后判断在计算时最后是否发生进位,看sign进位标志是否> 1,.原创 2022-03-12 00:05:04 · 455 阅读 · 0 评论 -
leetCode:加一 66::java
题目:思路:我开始想的是先把这个int类型的数组转为整数int,通过整数加1后再将得到的整数转成int数组,但发现可能会出现数据的溢出,当数组元素是{9,8,7,6,5,4,3,2,1,0}再转数字是9876543210 而int类型的最大值是2147483647会溢出,这样需要考虑的东西会很多。而直接操作数组本身就没有转来转去带来的数值溢出的情况,因为每一位的取值范围是0-9所以当最低位是9时直接将其赋值位0,第二低位 + 1,如果所有位都是9,那直接全不赋值为0,再新增加一个数组,其空间是已有数组的原创 2022-03-10 23:21:53 · 387 阅读 · 0 评论 -
leetCode:9 回文数::Java
题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。提示:-2^31 <= x <= 2 ^31 - 1方法一:思路:回文数是从左往右和从右往左来看数字是一样的,所以左边第一位==右边第一位以此类推。要验证该数是不是回文数我们可以取出每一位数再逆序组成新的数字看原数字和新数字是否相等,相等为回文数,不等不是回文数(负数不是回文数)class So原创 2022-03-08 22:50:20 · 7114 阅读 · 0 评论 -
leetCode::504 七进制数::java
题目要求:给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。思路:本题可以分为两步进行解决:第一步转为7进制数,第二部以字符串的形式输出第一步转7进制: for(i = 0; temp > 0;i ++){ yu = temp % 7; sum += Math.pow(10,i) * yu;//采用的是逆序取余法 temp = temp / 7; }第二步以字符串的形式输出java的内置方法原创 2022-03-07 20:36:03 · 307 阅读 · 0 评论 -
leetCode::暴力破解第一题
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。//思路:题目给了一个数组,一个目标数字。因为每一种的输入只会对应一个答案且答案是两个满足目标数的数组下标//我们可以再声明一个用来存放正确答案的数组且这个数组的长度为2。因为这个题是两个数相加,所以我们可以使用两层for循环//每次从数组的取出两个原创 2022-03-07 19:57:05 · 156 阅读 · 0 评论