每日一题
nai_dev
学无止境~
展开
-
leetcode题之合并两个有序链表(简单)
直接的数值比较,这里可以新链接一个链表,或者直接在其中一个链表插入移动。 题目描述 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 代码: class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { /.原创 2020-05-17 19:30:30 · 124 阅读 · 0 评论 -
leetcode题之有效的括号(简单)
遇到这道题一开始的思路就是使用栈的先进后出; 不过看到一个简洁的代码是直接匹配括号,然后删除一对括号,如果符合,最后字符串为空; 不过后者时间复杂度和空间复杂度不好,因为需要不断调用api。 题目描述 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例1: 输入: “()” 输出: true 示例2: 输入: “(]...原创 2020-05-17 17:54:22 · 105 阅读 · 0 评论 -
leetcode题之删除倒数第n个节点(中等)
和查找链表倒数第n个节点差不多,不过这里我们先查到倒数第n个的前一个,这样通过a.next指向需删除的下一个节点,这个节点就被删除了。 题目描述: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 示例 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 代码: 老方法,使用双指针; /** *.原创 2020-05-17 10:53:11 · 112 阅读 · 0 评论 -
leetcode题之四数之和(中等)
两数之和,三数之和,它来了。。。四数之和。 可推广到n数之和。 题目描述: 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意:答案中不可以包含重复的四元组。 示例: 给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。 满足要求的四元组集合为: [ [-1, 0, 0, 1], [.原创 2020-05-16 14:17:20 · 105 阅读 · 0 评论 -
leetcode题之三数之和为0(中等)
《LeetCoding》 读完题我就上手 操作起来稳如狗 二话不说就提交 最终超时骂我草 三顾题解再上手 提交错误心疾首 寻思看看评论区 没想和我一样虚 愁的我是头发白 做题还得自己来 反反复复终无误 击败百分三点五 题目描述: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -.原创 2020-05-15 14:07:07 · 263 阅读 · 0 评论 -
算法题之约瑟夫环(简单)
约瑟夫环代码简短,简单但可读性变难。 题目描述: 一共有n个人,依次报数,报到k的人被淘汰,第k+1个人又从1开始,最后留下的人的编号。 示例1: 输入(8,3) 输出 7 最后12345678中的第7编号留下; 示例2: 输入(1,3) 输出 1 当为1个人时,无论怎么报数,已经是最后留下的人 简单说明原理: 我们可以用数组和链表模拟游戏过程,得出结果,但这里只需结果,无需过程,所以用数学方法; (案例为5个人报数,报到3的排除) 原编号 1 2 3 4 5 排除 1 2 4.原创 2020-05-15 12:13:19 · 316 阅读 · 0 评论 -
leetcode题之返回倒数第k个节点(简单)
快慢指针 题目描述: 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 示例: 输入: 1->2->3->4->5 和 k = 2 输出: 4 代码如下: class Solution { public int kthToLast(ListNode head, int k) { ListNode slow = head; ListNode fast = head; while(k>0){ .原创 2020-05-14 18:05:27 · 324 阅读 · 0 评论 -
leetcode题之最长公共前缀(简单)
求最大字符串和最小字符串(字符串是字典排序)的最长公共前缀; 直接以第一个字符串为标准一次删去最后一个字符,startwith判断,直到最后一个字符串; 字典树 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。 代码如下: 上述的第二种方法: ..原创 2020-05-14 16:21:30 · 140 阅读 · 0 评论 -
leetcode题之罗马数字转整数(简单)
IV这种可以理解减I加V,所以-1+5=4; 题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写.原创 2020-05-14 15:10:27 · 160 阅读 · 1 评论 -
leetcode题之整数转罗马数字(中等)
固定符号一般采取编码 题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为.原创 2020-05-14 14:57:24 · 111 阅读 · 0 评论 -
leetcode题之盛最多容器水(中等)
平移,贪心算法 题目描述: 给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。 在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 示例: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 java代码: class Solution { public int maxArea(int[] .原创 2020-05-14 09:57:27 · 203 阅读 · 0 评论 -
leetcode题之Z字形变换(中等)
一道找规律题 直接z型存入n(规定的行)个stringbuilder; 根据规律(2*n-2为周期)。 题目描述 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。 请你实现这个将字符串进行指定行数变换的函.原创 2020-05-10 19:24:51 · 170 阅读 · 0 评论 -
leetcode题之最长回文子串(中等)
算法可用:中心扩展法,动态规划法,马拉车算法。 题目描述: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 测试样例: 示例1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例2: 输入: “cbbd” 输出: “bb” 马拉车算法代码实现如下: class Solution { public: string longestPalindrome(string s) { // Inser.原创 2020-05-09 19:41:47 · 77 阅读 · 0 评论 -
leetcode题之寻找两个有序数组的中位数(困难)
来源:力扣(LeetCode)题库 链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays 题目描述: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例...原创 2020-04-30 13:23:13 · 130 阅读 · 0 评论 -
leetcode题之无重复字符的最长子串(中等)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。...原创 2020-04-30 08:47:52 · 89 阅读 · 0 评论 -
leetcode题之两数之和(简单)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], t...原创 2020-04-30 08:38:12 · 100 阅读 · 0 评论