题
文章平均质量分 53
一些刷过的题
只爱吃土豆
一直都很菜...
展开
-
LeetCode - 198. 打家劫舍 (java)
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。输入:[2,...原创 2022-03-13 19:30:00 · 129 阅读 · 0 评论 -
LeetCode - 53. 最大子数组 (java实现)
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。示例2:输入:nums = [1]输出:1示例3:输入:nums = [5,4,-1,7,8]输出:23提示:1 <= nums.length <= 1...原创 2022-03-14 10:00:00 · 433 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串(java实现)
看题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"说明不需要考虑当输入所需旋转字符的个数大于字符串长度时的情况。三种方法:...原创 2022-01-11 21:33:54 · 630 阅读 · 3 评论 -
剑指 Offer 63. 股票的最大利润(java实现)
题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。(注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。)示例2:输入: [7,6,4,3,1]输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。思考:想原创 2022-01-10 23:11:16 · 563 阅读 · 4 评论 -
剑指 Offer 11. 旋转数组的最小数字(java实现,二分法)
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在重复元素值的数组numbers,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为1。示例1:输入:[3,4,5,1,2]输出:1示例2:输入:[2,2,2,0,1]输出:0思考:我在做这个题目时,第一时间想到的就是用穷举法直接找到最小...原创 2022-01-10 15:52:08 · 173 阅读 · 2 评论 -
剑指 Offer 35. 复杂链表的复制(java实现、原地修改解法)
先来看题:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例1:输入:head = [ [ 7, null], [ 13, 0 ], [ 11, 4 ], [ 10, 2 ], [ 1, 0 ] ]输出:[ [ 7, null ], [ 13, 0 ], [ 11, 4 ], [ 10, 2 ], [ 1, 0 ] ]示例2:.原创 2022-01-10 06:00:00 · 519 阅读 · 7 评论 -
剑指 Offer 06. 从尾到头打印链表(java实现)
先来看题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例:输入:head = [1,3,2]输出:[2,3,1]思考:这个题比较简单,要注意的就是如果按照正常的解题思路(这种做法总是需要两边循环的),我们首先需要拿到是链表的节点个数,然后创建一个数组,对数组的元素进行赋值。以下是解题步骤:1. 为了提高效率,这里不需要单独判断 head == null 的情况。首先定义一个 len = 0 。2. 使用一个备份的 head ,用来遍历链表原创 2022-01-09 16:29:36 · 647 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找(java实现)
首先查看 LeetCode上的题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26...原创 2022-01-08 23:08:50 · 746 阅读 · 0 评论 -
剑指 Offer II 077. 链表排序(Java实现、理解归并排序)
先看LeetCode上面的题目:给定链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。示例:输入:head = [4,2,1,3]输出:[1,2,3,4]思考:这道题的解决办法有许多,网上都可以找到,那么在这里,我们就来使用 归并排序 把它做一下。先来了解下什么是 归并排序:归并排序的一个重要思想就是:分而治之比如我有一组无序的整形数组,我想使用归并排序给它排个序,首先我会将这个整形数组分割成一个一个小的数组,一直分隔到小数组的元素个数为1.原创 2022-01-07 21:56:39 · 1148 阅读 · 2 评论