自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 leetcode刷题日记-合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。

2023-08-28 19:48:59 34

原创 leetcode刷题日记-无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。

2023-08-28 19:23:57 33

原创 leetcode刷题日记-接雨水

解题思路给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。

2023-08-23 15:53:55 42

原创 leetcode刷题日记-三数和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= j、i!= k 且 j!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]解释:不同的三元组是 [-1,0,1] 和 [-1,-1,2]

2023-08-22 14:59:39 20

原创 leetcode刷题日记-移动0

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。

2023-08-20 09:33:04 18

原创 leetcode刷题日记-最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

2023-08-20 09:09:51 27

原创 leetcode刷题日记-字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

2023-08-20 08:42:16 19

原创 leetcode刷题日记-两数和

leetcode之两数和

2023-08-19 11:05:18 31

原创 排序算法之归并排序

排序算法之归并排序前言这是分治法的典型案例,也属于牺牲空间换取时间的例子此处使用的是较为经典的二路归并排序原理该算法是先使每个子序列有序,随后合并两个有序子列形成有序全列1、将待排序数组分开成若干子列(一般是不断二分,直至每个子列仅有一个元素)2、将两个子列有序合并,最终合并出有序全列此处为引用时间复杂度分析O(nlogn)C++实现#include <cstring>#include <iostream>typedef bool(*CompareFu

2020-09-27 10:22:59 155

原创 算法引言之大O记法---时间复杂度分析

算法引言之大O记法—时间复杂度分析前言来填一填坑问题分析对于代码,企业肯定需要更高质量。那么,以什么标准衡量一段代码的质量呢?显而易见,执行时间。没有客户希望自己的程序始终处于转圈状态,都想要一个反应速度很快的软件。问题随之而来,怎样判断一段代码运行的速度呢。我们当然不能实际测试机器跑一段代码用了多久,因为这样限制性很强。如果对于一段代码进行大量的数据测试,软件开发成本将变的极其高昂。因此,我们应该将重心放在关键的操作上面,即核心代码执行了多少次。这样一来我们就找到了相对公允的判断标准规模问题我

2020-09-26 07:01:25 224

原创 排序算法之希尔排序

排序算法之希尔排序前言从此篇开始将介绍较为高级的排序算法,相信大家已经发现,前面的几篇算法的时间复杂度表现并不优秀,下面将介绍时间复杂度表现不错的几种排序算法其中很多用到了分治法的思想,望大家多多体会排序原理官话:1、选定一个增量长,按照增量长h作为数据分组的依据。对数据进行分组2、对分好组的每一组数据完成插入排序3、减小增量长,最小为1,...

2020-09-25 09:16:57 167

原创 排序算法之插入排序

排序算法之插入排序前言排序篇第三篇内容排序原理官话:1、把所有元素分为两组,已排序和未排序2、找到未排序的第一个元素,向已排序的组中进行插入操作3、倒序遍历已经排序的元素,并进行比较,直到找到一个元素小于待插入元素(第一个满足此条件的元素),就把待插入元素放到这个位置白话:相当于起扑克牌,并没有进行排序,在你面前有一堆牌需要排序。拿起第一张,第二张进行比较,找到应该在的位置,以此类推完成整个数组的排序工作时间复杂度分析内部同样使用了双层循环,时间复杂度以大O记法记为:O(n^2)C+

2020-09-25 08:43:49 157

原创 排序算法之选择排序

排序算法之选择排序前言作为排序算法篇的第二篇内容,在排序算法上进一步深入,讲解更为常用的选择排序排序原理官话:(更加精准,但是比较难懂)1、在每一次的遍历中,都假定第一个索引处的元素为最小值(此处指从小到大排序),和其他索引处的值依次进行比较,若当前索引处的值大于其他某个索引处的值,则假定其他某个索引处的值为最小值,最后可以找到最小值所在的索引2、交换第一个索引处和最小值所在的索引处的值白话:(更加通俗易懂,但是没有那么准确)一共进行n次遍历数组,每一次将尚未判断的最靠前的元素与后面所有的元

2020-09-24 22:08:04 79

原创 排序算法之冒泡排序

排序算法之冒泡排序前言作为学习笔记及分享使用,目的在于加深自己的印象。代码若有雷同纯属巧合排序原理1、比较相邻两个元素,依据排序需要调整顺序2、对每一对相邻元素进行比较,最终完成排序时间复杂度分析在最坏情况之下,要对逆序排序进行调整为顺序排序(或者顺序变逆序),比较次数:N^2/2-N/2交换次数:N^2/2-N/2总有效操作次数:N^2-N时间复杂度(大O记法):O(n^2)tip:对于大O记法的相关内容日后补上,优先整理排序相关算法。有时间尽快跟上C++实现#include

2020-09-24 21:35:33 64

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除