LeetCode
柠檬鱼yue
学习成长记录,努力做程序媛
展开
-
【LeetCode刷题笔记/LeetCode35】搜索插入位置----二分查找
题目来源:35.搜索插入位置题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。暴力解法思路:要在数组中插入目标值,包括以下四种情况:目标值在数组所有元素之前目标值等于数组中某一个元素目标值插入数组中的位置目标值在数组所有元素之后class Solution { public int searchInsert(int[] nums, int target) {原创 2021-06-11 10:55:13 · 103 阅读 · 1 评论 -
【LeetCode刷题笔记/LeetCode704】二分查找left+(right-left)/2
二分查找使用条件:数组有序且元素无重复二分查找经常用到left+(right-left)/2 代替mid = (left + right) / 2原因就是left+right很容易超过int范围,导致mid = (left + right) / 2 容易溢出,而==mid = left + (right - left) / 2 ==不容易溢出,所以写二分时要用mid = left + (right - left) / 2。题目:LeetCode704.二分查找区间:[left,right]下:i原创 2021-06-09 21:13:47 · 541 阅读 · 0 评论 -
【LeetCode刷题笔记】s.length和s.length()区别
在for循环中经常用到的两个条件表达式的区别如下:s.length是针对java中数组的,length是数组的一个属性,用来表示数组的长度。s.length()则是字符串的一个方法,用来返回字符串的长度。字符串是没有length属性,只有length()方法。数组有length属性,而没有length()方法。...原创 2021-05-30 10:45:40 · 662 阅读 · 0 评论 -
【LeetCode刷题笔记】s==null与s.length()==0区别
小白在做字符串算法题时经常要对输入值进行判空,经常用到两种判断情况:s == null; 表示s还没有占用存储空间。s.length() == 0; 表示s占用存储空间,但是其中还没有元素。当s == null 时,使用s.length()判空会抛出NullPointerException。代码一为错误用法,代码二为正确用法。代码一://报错:NullPointerExceptionint n= s.length();if (n == 0 || s == null){ return原创 2021-05-30 10:37:52 · 924 阅读 · 1 评论 -
Java中toCharArray()/LeetCode242.有效的字母异位
toCharArray():将字符串中的字符转换为一个字符数组。例:LeetCode242.有效的字母异位题目描述:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false方法:排序public class Solution { public boolean isAnagram(Strin原创 2021-04-19 20:27:21 · 139 阅读 · 0 评论 -
LeetCode第101题:对称二叉树
题目来源:https://leetcode-cn.com/problems/symmetric-tree/题目描述:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:进阶:你可以运用递归和迭代两种方法解决这个问题吗?方法一:广度周游—递归思路:镜像对称条件:两个子树的根节点有相同的值;每一个树的右子树都与另一个树的左子树镜像对称。判断左子树根节点t1原创 2020-12-28 15:57:35 · 149 阅读 · 0 评论 -
LeetCode刷题HOT100—Java篇
LeetCode刷题HOT100汇总1.两数之和23.合并k个升序链表原创 2020-12-26 21:43:30 · 503 阅读 · 0 评论 -
LeetCode第1题:两数之和
题目来源:https://leetcode-cn.com/problems/two-sum/题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解法方法一:暴力求解-枚举p原创 2020-12-26 21:34:10 · 148 阅读 · 0 评论 -
LeetCode第23题:合并k个升序链表
题目来源:https://leetcode-cn.com/problems/merge-k-sorted-lists/首先思考两个有序链表的合并public ListNode mergeTwoLists(ListNode a, ListNode b) { //判断链表a和b是否为空,若为空则直接返回另一个链表 if (a == null || b == null) { return a != null ? a : b; } //初始化头指针,用来保存合并后链表的头部,val属性不需保存任何值原创 2020-12-25 19:46:26 · 283 阅读 · 1 评论 -
Java条件表达式/LeetCode第160题相交链表
条件表达式的一般使用形式为:表达式 1?表达式 2:表达式 3其中,“?”与 “:” 为条件运算符,须一起使用,是 Java 中唯一的三元运算符,需要三个操作数才能进行运算。条件表达式的运算规则为:如果表达式 1 的结果为真,则整个条件表达式的值为表达式 2 的值;否则,整个条件表达式的值为表达式 3 的值。例如:pA = pA == null ? headB : pA.next;如果pA为为空,则将B的头指针赋给pA,否则将pA的后继赋给pA。这里,pA == null ? headB原创 2020-12-24 13:32:37 · 496 阅读 · 2 评论