leetcode20天算法
Carterren
这个作者很懒,什么都没留下…
展开
-
Day6 滑动窗口
3. 无重复字符的最长子串给定一个字符串 s请你找出其中不含有重复字符的最长子串的长度。输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 class Solution { public int lengthOfLongestSubstring(String s) { int ans = 0; HashMap<Object, Object> map = new HashMap&l原创 2021-07-26 10:06:14 · 84 阅读 · 0 评论 -
Day5 双指针
876. 链表的中间结点(快慢指针)给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.n原创 2021-07-23 09:52:04 · 98 阅读 · 0 评论 -
Day4 双指针
[344. 反转字符串](https://leetcode-cn.com/problems/move-zeroes/)编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]class Solutio原创 2021-07-22 09:56:45 · 72 阅读 · 0 评论 -
Day2 双指针
力扣977. 有序数组的平方给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100] /** *通过左右指针选出较大的数放在resule数组的最后一个,然后res数组的索引减一 *如果左边数大做指针加一 *同理右边大右指针加一 */class原创 2021-07-20 10:52:37 · 63 阅读 · 0 评论 -
Day1 二分查找
第1天 二分查找二分查找也叫作折半查找,前提是需要查找的数组是有序的。解题思路:设置左指针为数组起始位置 int left = 0;设置右指针为数组结束位置 int right = arr.length-1;设置中间值为 int mid = (left+right)/2;若 arr[mid]<target ,左指针移动到mid的右边一个单位若 arr[mid]>target ,右指针移动到mid的左边一个单位若 arr[mid]==target ,返回mid值下面是二分原创 2021-07-20 09:53:54 · 53 阅读 · 0 评论