随笔分类 -  LeetCode

摘要:谨以本文记录学习、回顾二分查找算法过程,如有错误还请朋友指正! 题目 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 进阶:你可以设计并实现时间复杂度为 O(log n 阅读全文
posted @ 2021-08-18 18:11 sykline 阅读(68) 评论(0) 推荐(0)
摘要:题目: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 阅读全文
posted @ 2021-08-18 17:15 sykline 阅读(36) 评论(0) 推荐(0)
摘要:尝试使用markdown,记一次并查集解题记录…… #题目 在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。 (请注意,反斜杠字符是转义的,因此 \ 用 "\" 表示。)。 返回区域的数目。 来源:力扣 阅读全文
posted @ 2020-06-29 10:16 sykline 阅读(289) 评论(0) 推荐(0)
摘要:题目: 给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。 如果不能形成任何面积不为零的三角形,返回 0。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/largest-perimeter-tr 阅读全文
posted @ 2020-02-29 21:32 sykline 阅读(326) 评论(0) 推荐(0)
摘要:题目: 给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。 你可以返回任何满足上述条件的数组作为答案。 示例: 输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5] 阅读全文
posted @ 2020-02-29 21:06 sykline 阅读(281) 评论(0) 推荐(0)
摘要:题目: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram"输出: true 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-a 阅读全文
posted @ 2020-02-27 22:26 sykline 阅读(273) 评论(0) 推荐(0)
摘要:题目: click here!!题目传送门 思路: 1.笨方法 因为如果两个链表相交的话,从相交的地方往后是同一条链表,所以: 分别遍历两个链表,得出两个链表的长度,两个长度做差得到n,然后将长的链表头指针先移动n个结点,然后两个链表再同时移动,如果出现两个链表的指针直到同一个内存地址,说明相交,没 阅读全文
posted @ 2020-02-15 21:44 sykline 阅读(213) 评论(0) 推荐(0)
摘要:题目: 判断给出的链表中是否存在环。 思路: 1. 遍历整个链表,将走过的节点的内存地址保存下来,如果再次走到同样的内存地址,说明链表中有环。时间复杂度为O(n)。 2. 设置两个指针,fast指针每次走两步,slow指针每次走一步, 如果链表中有环: 当两个指针都进入环中后,他们将在n次移动后相遇 阅读全文
posted @ 2020-02-15 20:52 sykline 阅读(218) 评论(0) 推荐(0)
摘要:题目: 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到 阅读全文
posted @ 2020-02-09 22:08 sykline 阅读(277) 评论(0) 推荐(0)
摘要:题目: 机器人在一个无限大小的网格上行走,从点 (0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类型的命令: -2:向左转 90 度-1:向右转 90 度1 <= x <= 9:向前移动 x 个单位长度在网格上有一些格子被视为障碍物。 第 i 个障碍物位于网格点 (obstacles[i 阅读全文
posted @ 2020-02-01 18:33 sykline 阅读(540) 评论(0) 推荐(0)
摘要:题目: 给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。) 以这种方式修改数组后,返回数组可能的最大和。 示例 1: 输入:A = [4,2,3], K = 1输出:5解释 阅读全文
posted @ 2020-01-29 22:15 sykline 阅读(140) 评论(0) 推荐(0)
摘要:题目: 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的 阅读全文
posted @ 2020-01-26 20:36 sykline 阅读(304) 评论(0) 推荐(0)
摘要:题目: 数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0。将第 i 个筹码向左或者右移动 1 个单位,代价为 1。最开始的时候,同一位置上也可能放着两个或 阅读全文
posted @ 2020-01-25 21:26 sykline 阅读(390) 评论(0) 推荐(0)
摘要:题目: 公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。 返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。 示例: 输入:[[10,20],[30,200],[400,50],[30,20]]输出:11 阅读全文
posted @ 2020-01-18 23:11 sykline 阅读(285) 评论(0) 推荐(0)
摘要:题目: 思路: 直接递归求解最大深度就可以,这里主要记录一下Java中比较获得两个数中最大值的方法。 import java.math.*; class Solution { public int maxDepth(Node root) { if(root==null){ return 0; } i 阅读全文
posted @ 2020-01-18 19:02 sykline 阅读(129) 评论(0) 推荐(0)
摘要:题目: 给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列。 我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i < n),满足 array[i] <= array[i + 1]。 思路: 4,2,3 -1,4,2,3 2, 阅读全文
posted @ 2020-01-17 19:33 sykline 阅读(135) 评论(0) 推荐(0)
摘要:题目: 思路:(题外话:好久不刷题,明显生疏了好多,要捡起来记住当初那一份热爱!) 判断溢出的方法,在将数字反转的同时,专注在int的最大值/10和最小值/10这两个数上进行判断就可以了: 拿正数为例:设res为反转后的数字 if res > Integer.MAX_VALUE/10 无论res再加 阅读全文
posted @ 2019-11-26 22:07 sykline 阅读(225) 评论(0) 推荐(0)
摘要:题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例: abcabcbb 输出的结果应该是3,最长的无重复的字串是'abc' 果然无论做什么都要静下心来啊!昨晚上卡了一个多小时愣是没改出来,今天仔细的考虑了一下,半个小时搞定………… 思路: 简单的滑动窗口问题,遍历字符串, 阅读全文
posted @ 2019-09-26 09:37 sykline 阅读(283) 评论(0) 推荐(0)