算法部分
安慕尧
这个作者很懒,什么都没留下…
展开
-
每天一道算法题系列四十一之学生出勤记录 I
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/student-attendance-record-i/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:‘A’:Absent,缺勤‘L’:Late,迟到‘P’:Present,到场如果学生能够 同原创 2021-08-17 16:22:19 · 249 阅读 · 0 评论 -
每天一道算法题系列四十之冒泡 选择 插入 快排算法
package com.test.suanfa;public class BaseTest { public static void main(String[] args) { int arr[] = {20,23,43,2,4,67,8,6,65,33,10,19}; printArray(arr); System.out.println("------------bubbleSort----------------"); // b原创 2021-05-27 11:54:53 · 140 阅读 · 0 评论 -
每天一道算法题系列三十九之最后一个单词的长度
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/length-of-last-word/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = “Hello World”原创 2021-02-05 09:54:06 · 174 阅读 · 0 评论 -
每天一道算法题系列三十八之插入区间
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/insert-interval/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给你一个 无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例 1:输入:intervals = [[1,3],[6,9]], newInterval原创 2021-02-04 11:51:38 · 163 阅读 · 0 评论 -
每天一道算法题系列三十七之合并区间
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/merge-intervals/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:interval原创 2021-02-01 15:01:22 · 345 阅读 · 0 评论 -
每天一道算法题系列三十六之跳跃游戏
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/jump-game/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然原创 2021-01-29 11:16:12 · 200 阅读 · 0 评论 -
每天一道算法题系列三十五之螺旋矩阵
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/spiral-matrix/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5原创 2021-01-28 11:15:19 · 109 阅读 · 0 评论 -
每天一道算法题系列三十四之最大子序和
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/maximum-subarray来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。/*原创 2021-01-26 16:28:03 · 127 阅读 · 0 评论 -
每天一道算法题系列三十三之排序方式之快排,冒泡,选择排序
快速排序快速排序,大致的几个步骤在数组中选一个基准数(通常为数组第一个);将数组中小于基准数的数据移到基准数左边,大于基准数的移到右边;对于基准数左、右两边的数组,不断重复以上两个过程,直到每个子集只有一个元素,即为全部有序。描述一大堆 上一个案例:23,46,15,13,14,59,52,28,7,17,10,16对他进行排序,我们第一个循环将数组第一个数23赋给temp变量,指针 l(left) 指向数组第一个元素,指针 r(right)指向数组最后一个元素23,46,15,13,1原创 2021-01-25 14:30:08 · 194 阅读 · 0 评论 -
每天一道算法题系列三十二之调整数组顺序使奇数位于偶数前面
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1原创 2021-01-22 09:50:01 · 199 阅读 · 0 评论 -
每天一道算法题系列三十一之删除链表的节点
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,原创 2021-01-21 14:08:55 · 96 阅读 · 0 评论 -
每天一道算法题系列三十之数值的整数次方
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出:原创 2021-01-20 09:45:18 · 252 阅读 · 2 评论 -
每天一道算法题系列二十九之二进制中1的个数
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:000000000原创 2021-01-19 10:36:13 · 172 阅读 · 0 评论 -
每天一道算法题系列二十八之整数拆分
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/integer-break/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3原创 2021-01-18 11:30:10 · 206 阅读 · 0 评论 -
每天一道算法题系列二十七之旋转数组的最小数字
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转原创 2021-01-07 15:27:37 · 104 阅读 · 0 评论 -
每天一道算法题系列二十六之用两个栈实现队列
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHea原创 2021-01-06 09:46:15 · 177 阅读 · 0 评论 -
每天一道算法题系列二十五之求1+2+…+n
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/qiu-12n-lcof/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45/** * 正原创 2021-01-05 15:04:00 · 402 阅读 · 2 评论 -
每天一道算法题系列二十四之二维数组中的查找
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。弱弱说一句,最近做项目迁移太难了,加班回家太晚了,一直没做算法题,然后元旦就再家恢复了一下,后面会继续写算法系列。本题难度是中等在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递原创 2021-01-04 15:26:30 · 136 阅读 · 0 评论 -
每天一道算法题系列二十四之实现strStr()
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/implement-strstr/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单public class StrStr { public static void main(String[] args) { System.out.println(strStr("qwertyqwerty", "tyqwe原创 2020-12-24 11:01:41 · 91 阅读 · 0 评论 -
每天一道算法题系列二十之合并两个有序链表
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->原创 2020-12-07 23:26:43 · 118 阅读 · 1 评论 -
每天一道算法题系列十九之有效的括号
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/valid-parentheses/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”原创 2020-12-03 23:27:53 · 131 阅读 · 0 评论 -
每天一道算法题系列十八之删除链表的倒数第N个节点
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2-原创 2020-12-02 22:21:24 · 123 阅读 · 0 评论 -
每天一道算法题系列十七之电话号码的字母组合
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”,原创 2020-12-01 08:45:49 · 118 阅读 · 0 评论 -
每天一道算法题系列十六之最接近的三数之和
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/3sum-closest/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target原创 2020-11-30 14:30:35 · 100 阅读 · 0 评论 -
每天一道算法题系列十五之二叉树的后序遍历
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3]12/3输出: [3,2,1]这是二叉树系列,是有一个一套的,由于今天做了这道题,感觉要写一个系列的好一些,但是好久没有发原创 2020-11-26 23:14:35 · 155 阅读 · 0 评论 -
每天一道算法题系列十四之三数之和
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/3sum/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1,原创 2020-11-22 19:28:35 · 179 阅读 · 0 评论 -
每天一道算法题系列十三之罗马数字转整数
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/roman-to-integer/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C原创 2020-11-21 21:55:53 · 198 阅读 · 0 评论 -
每天一道算法题系列十二之整数转罗马数字
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/integer-to-roman/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等在写这道题之前,我必须要吐槽一下自己,这个人与人之间确实是不一样的。做这道题的过程中,我的心路历程是:哭了,为什么我写不出来这道题的解法,为什么我这么笨。然后我看了这道题的官方解法,然后就觉得这个想法真的太厉害了,自己还是要多见识下大佬大骚操作原创 2020-11-20 08:43:38 · 132 阅读 · 0 评论 -
每天一道算法题系列十一之取连续数种缺少的数
每天一道算法题系列:我之前遇到过一个需求,然后在这里写下来,如果有碰瓷其他题目请联系我这题是这样的,在一周中有7天,我们每天可以签到,然后就可能存在漏签的情况比如我在一周中签到了1,2,3,5,6,7;第四天我没有签到,就漏签了,我们需要把他算出来,算出来之后在补签然后如果一周漏签了2次,那么就要取出第一次漏签的天数来补签,比如1,2,4,7;那么就要得到3在出来补签import java.util.HashMap;/** *我之前遇到过一个问题,然后在这里写下来,如果有碰瓷其他题目请联系我原创 2020-11-19 19:43:52 · 125 阅读 · 1 评论 -
每天一道算法题系列十之最长公共前缀
package com.example.likou.likou3;public class LongestCommonPrefix { /* 本题的解法,就是取第一个string为固定的一个数,然后依次去和后面的数做比较,因为 后面的数重复的数是不会大于第一个数的,然后和第二个数比较的时候,得到一个数,然后用得到的这个数 与第三个数比较,依次类推 */ public static String LongestCommonPrefix(String[] s原创 2020-11-19 13:04:04 · 127 阅读 · 0 评论 -
每天一道算法题系列九之盛最多水的容器
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/container-with-most-water/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器原创 2020-11-17 14:22:54 · 125 阅读 · 0 评论 -
每天一道算法题系列八之回文数
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/palindrome-number/submissions/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是简单判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121原创 2020-11-16 08:44:17 · 138 阅读 · 0 评论 -
每天一道算法题系列七之 字符串转换整数 (atoi)
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/string-to-integer-atoi/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字原创 2020-11-15 16:11:27 · 96 阅读 · 0 评论 -
每天一道算法题系列六之Z 字形变换
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/zigzag-conversion/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N原创 2020-11-14 17:41:15 · 144 阅读 · 0 评论 -
每天一道算法题系列五之最长回文子串
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/longest-palindromic-substring/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。本题难度是中等给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输原创 2020-11-12 08:57:53 · 900 阅读 · 2 评论 -
每天一道算法题系列四之无重复字符的最长子串
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入原创 2020-11-11 08:46:25 · 130 阅读 · 2 评论 -
每天一道算法题系列二之整数反转
每天一道算法题系列:来源:力扣(LeetCode)本题链接:https://leetcode-cn.com/problems/reverse-integer来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。/*** * 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 * * 示例 1: * * 输入: 123 * 输出: 321 * 示例 2: * * 输入: -123 * 输出: -321 * 示例 3: * * 输原创 2020-11-09 08:54:40 · 113 阅读 · 0 评论 -
每天一道算法题系列一之两数之和
每天一道算法题系列:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可(英语不好的朋友进中文版),我这里只是记录自己的一些思想。给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2,原创 2020-11-05 20:23:56 · 124 阅读 · 2 评论