LeetCode
我的刷题笔记
xielvji
ce转战cs的菜鸟一只
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
移除元素
移除元素问题描述解题思路问题描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。解题思路我的思路:考虑到我们不需要考虑超出长度范围外的数组内容,于是我们可以从数组末尾开始便利,遇到val就从末尾数组中找一个值进行替换,最终的结果是所有非val的值都会被替换到前面有效长度内。class So原创 2021-03-12 16:21:08 · 160 阅读 · 0 评论 -
删除排序数组中的重复项
删除排序数组中的重复项问题描述解题思路问题描述给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。解题思路我的解法:类指针法(我起的名字,因为Java没有通常意义上的指针)。设一个变量local用来记录读取到的非重复数字的位置,并且把该数字覆盖到nums[local]上,最后输出的长度是local+1。class Solution { publ原创 2021-03-08 17:41:30 · 287 阅读 · 0 评论 -
合并两个有序链表
合并两个有序链表问题描述解题思路问题描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。例如:l1 = [1,2,3]l2 = [0,2,4]input = [0,1,2,2,3,4]解题思路1、本题比较简单,主要考察的还是对链表的认识,简单的思路就是创建一个新的List,利用if判断l1.val和l2.val的大小,哪一个大就把哪一段链表接在新List的后边,同时令该段小链表往后移动一个位置,一直移动到其中一段链表为空(null)时结束。/原创 2021-03-07 14:33:57 · 4585 阅读 · 0 评论 -
有效的括号
有效的括号问题描述解题思路问题描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。解题思路1、我的解决方案:删去法,每次循环检索str中是否存在"[]","{}","()",有则删去。最终如果str的长度不为0,则说明不对称包括,如果长度为0,表明"[]","{}","()"被完全去除,则完全对称包括。class Solution { public bo原创 2021-03-05 17:56:22 · 200 阅读 · 2 评论 -
最长公共前缀
最长公共前缀问题描述解题思路问题描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。解题思路1、我的解法class Solution { public String longestCommonPrefix(String[] strs) { //这个问题需要排除两种特殊情况,为了代码的简洁性单独写了一个check函数对strs做检查 if(!check(strs)){ return "";原创 2021-03-02 22:04:49 · 107 阅读 · 0 评论 -
罗马数字转整数
罗马数字转整数题目描述解题思路题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字原创 2021-03-02 17:26:18 · 138 阅读 · 0 评论 -
回文数
回文数题目描述解题思路题目描述给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。解题思路1、纯数学方法,不利用字符串比对进行解决。class Solution { public boolean isPalindrome(int x) { int temp=x,i=0,left,right=0; boolean res原创 2021-02-24 17:18:26 · 742 阅读 · 0 评论 -
整数反转
整数反转问题描述解题思路问题描述给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。解题思路1、最傻的办法,也是我第一次做时候的蠢方法。首先是判断出给定x的长度,然后定义数组用来储存x数字,再把数组倒置输出,利用long和int的不同判断倒置输出后长度是否超出int的范围判断result输出0还是结果。class Solut原创 2021-02-24 16:34:20 · 129 阅读 · 0 评论 -
两数之和
两数之和问题描述解题思路问题描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。解题思路1、穷举法。通过两次循环,检验数组中是否存在target - nums[i],并将其返回出来。class Solution { public int[] twoSum(int[] nums, int target) {原创 2021-02-23 16:01:48 · 135 阅读 · 0 评论
分享