算法题
文章平均质量分 54
_路漫漫其修远
这个作者很懒,什么都没留下…
展开
-
leetcode题被坑记录
本文从 Leetcode 中精选大概 200 左右的题目,去除了某些繁杂但是没有多少算法思想的题目,同时保留了面试中经常被问到的经典题目算法思想双指针633. 平方数之和——力扣题目以及示例:给定一个非负整数c,你要判断是否存在两个整数 a 和 b,使得a2 + b2 = c 。示例 1:输入:c = 5输出:true解释:1 * 1 + 2 * 2 = 5示例 2:输入:c = 3输出:false示例 3:输入:c = 4输出:true示例 4:...原创 2021-07-10 23:47:54 · 434 阅读 · 1 评论 -
刷算法题(8)—— 633. 平方数之和_力扣
题目以及示例:给定一个非负整数c,你要判断是否存在两个整数 a 和 b,使得a2 + b2 = c 。示例 1:输入:c = 5输出:true解释:1 * 1 + 2 * 2 = 5示例 2:输入:c = 3输出:false示例 3:输入:c = 4输出:true示例 4:输入:c = 2输出:true示例 5:输入:c = 1输出:true提示:0 <= c <= 231 - 1来源:力扣(LeetCode)链接:http...原创 2021-07-08 20:57:36 · 160 阅读 · 0 评论 -
数据结构学习(3)——模式识别
模式识别1:一旦涉及出现次数,需要用到散列表。字符串散列表题型中,通常字符作为键,字符出现次数作为值模式识别2:涉及子串,考虑滑动窗口,动态扩张收缩子串。给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。来源:力扣(L...原创 2021-05-15 09:27:15 · 327 阅读 · 0 评论 -
刷算法题(7)—— JZ1 二维数组中的查找_牛客
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]]给定 target= 7,返回true。给定target=3,返回false。示例1输入复制7,[[1,2,8,9],[2,4,9,12]...转载 2021-05-07 14:37:07 · 104 阅读 · 0 评论 -
刷算法题(6)—— 2.两数相加_力扣
2. 两数相加难度中等5287收藏分享切换为英文接收动态反馈给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = ...原创 2020-11-23 20:37:21 · 111 阅读 · 0 评论 -
刷算法题(5)—— 1.两数之和 _力扣
给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解法一:JAVA,暴力枚举,时间复杂度O(n^2),空间复杂度O(1)class Solution { pu...原创 2020-11-19 17:48:17 · 101 阅读 · 0 评论 -
刷算法题(4)——JZ4 重建二叉树_牛客
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。示例1输入复制[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]返回值复制{1,2,5,3,4,6,7}解:递归,JAVA思路:递归过程,通过前序数组找到二叉树的根结点,再通过中序数组分出二叉树的左右子树,重复原创 2020-11-15 11:27:57 · 165 阅读 · 2 评论 -
刷算法题(3)——JZ2 替换空格_牛客
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解法一:replace函数,JAVA用java自带的replace函数,即可方便替换目标字符串public class Solution { public String replaceSpace(StringBuffer str) { return str.toString().replace(".原创 2020-11-10 22:04:29 · 112 阅读 · 0 评论 -
刷算法题(2)——JZ3 从尾到头打印链表_牛客
题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。示例1输入复制{67,0,24,58}返回值复制[58,24,0,67]解法一:递归,JAVA递归遍历到链表尾部,在逐层退出递归时用ArrayLIst对象收集链表上的数据,达到逆序ArrayList对象的效果/*** public class ListNode {* int val;* ListNode next = null;**原创 2020-11-10 21:24:04 · 152 阅读 · 0 评论 -
刷算法题(1)——973. 最接近原点的 K 个点_力扣
题目描述我们有一个由平面上的点组成的列表 points。需要从中找出 K 个距离原点 (0, 0) 最近的点。(这里,平面上两点之间的距离是欧几里德距离。)你可以按任何顺序返回答案。除了点坐标的顺序之外,答案确保是唯一的。示例 1:输入:points = [[1,3],[-2,2]], K = 1输出:[[-2,2]]解释:(1, 3) 和原点之间的距离为 sqrt(10),(-2, 2) 和原点之间的距离为 sqrt(8),由于 sqrt(8) < sqrt(1..原创 2020-11-09 18:50:44 · 285 阅读 · 0 评论