算法题
小乐乐的天台
这个作者很懒,什么都没留下…
展开
-
算法题---加一(乐乐独记)
1、题目描述给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]原创 2022-05-23 14:43:46 · 212 阅读 · 0 评论 -
算法题---最后一个单词的长度(乐乐独记)
1、题目描述给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个 单词的长度。单词是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = “Hello World”输出:5解释:最后一个单词是“World”,长度为5。示例 2:输入:s = " fly me to the moon "输出:4解释:最后一个单词是“moon”,长度为4。示例 3:输入:s = “luffy is still joyb原创 2022-05-23 14:09:41 · 416 阅读 · 0 评论 -
算法题---最大子数组和(乐乐独记)
1、题意描述给你一个整数数组 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]输出:232、解题思路在看到这个题的时候,由于我们求的是连续字串的最原创 2022-05-23 11:10:29 · 196 阅读 · 0 评论 -
算法题---搜索插入位置(乐乐独记)
1、题意描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 42、解题思路其实对于这个题呢原创 2022-05-21 17:04:28 · 131 阅读 · 0 评论 -
算法题---移除元素(乐乐独记)
1、题意描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实原创 2022-05-21 15:47:10 · 119 阅读 · 0 评论 -
算法题---删除有序数组中的重复项(乐乐独记)
1、题意描述给你一个 升序排列 的数组 nums ,请你原地删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的相对顺序应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。判题标原创 2022-05-21 14:41:25 · 291 阅读 · 0 评论 -
算法题---合并两个有序链表(乐乐独记)
1、题意描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]2、解题思路做这道题的时候,我们应该想到以下几点:1、由于我们操作的是链表,在合并的同时,我们是可以重复利用两个链表所占用的空间的,不原创 2022-05-20 17:24:51 · 107 阅读 · 0 评论 -
算法题---有效的括号(乐乐独记)
1、题意描述给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:tr原创 2022-05-20 16:08:38 · 145 阅读 · 0 评论 -
算法题---最长公共前缀(乐乐独记)
1、题意描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:“”解释:输入不存在公共前缀。2、解题思路下面我们使用的方法是,先求第一个和第二个求公共前缀,然后拿上公共前缀去和第三个求公共前缀,依次类推,即可。3、代码示例public class Lo原创 2022-05-20 14:59:49 · 126 阅读 · 0 评论 -
算法题---罗马数字转整数(乐乐独记)
1、题意描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。如下所示:罗马字符阿拉伯数I1V5X10L50C100D500M1000例如, 罗马数字 2写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1原创 2022-05-19 15:09:19 · 198 阅读 · 0 评论 -
算法题---回文数(乐乐独记)
1、题意描述给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因原创 2022-05-19 13:46:47 · 257 阅读 · 0 评论 -
算法题---合并两个有序数组(乐乐独记)
1、题意描述给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例 1:输入:nums1 =原创 2022-05-18 11:14:33 · 350 阅读 · 0 评论 -
算法题---无重复字符的最长子串(乐乐独记)
1、题意描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。举例:示例 1:输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是原创 2022-05-05 22:20:42 · 329 阅读 · 0 评论 -
算法题---两数相加(乐乐独记)
1、题意描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。2、解题思路1、首先我们需要考虑到两个链表的长度问题,那么很显然的就有三种情况l1的长度等于l2的长度。l1的长度大于l2的长度。l1的长度小于l2的长度。2、由于链表存储的数据...原创 2022-05-05 20:03:38 · 202 阅读 · 0 评论 -
算法题---两数之和(乐乐独记)
算法题---两数之和(乐乐独记)1、内容描述2、暴力求解3、hash表查找方法1、内容描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。2、暴力求解通常常规求解方法我们可以使用暴力求解,也就是两个循环,列举出所以可能的枚举,挨个去判断,直到找到对应的答案。时间复杂度是O(n2)空间复杂度是O(n)代码示例如下:原创 2021-10-24 23:22:37 · 1798 阅读 · 0 评论