自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

can_chen的博客

再小的帆也能远航

  • 博客(5)
  • 收藏
  • 关注

原创 单调栈的应用——每日温度

何为单调栈?单调栈有什么用?什么情况下可以使用单调栈?为什么要使用单调栈?相信第一次接触到单调栈的你都会有这些疑问;栈是操作受限的线性表,对于插入和删除都只能在一端进行,而单调栈就是在栈的基础上进一步限制了,有单调递增栈和单调递减栈,对于单调递增栈来说,就是需要保证栈中的元素大小是单调递增的,同理,对于单调递减栈来说,需要保证栈中的元素大小是单调递减的例如:对于(3,2,1)来说,满足单调递增栈,对于(1,2,3)来说,满足单调递减栈,而(3,1,2)既不满足单调递增栈也不满足单调递减栈举一个例子,有一

2020-12-25 00:55:04 316

原创 单调栈的应用——接雨水

题目描述LeetCode 42. 接雨水(难度:困难)给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。解题思路:首先,拿到这道题目的时候,我们应该先想,什么情况下才能接到雨水?如果凭空想象会很难,但是结合题目给出的图解就非常清晰了,如果后面的柱子高度比前面的柱子高度小,那么是接不到雨水的,而如果后面的柱子高度是大于前面柱子高度的,那么是有可能接到雨水的(注意只是有可能,后面我们就可以看出接不到雨水的情形),想到这一步,就可以把这道题转换一下.

2020-12-24 20:46:44 685

原创 一看就会,一写就废——二分法

二分法相对于其它算法来说是比较简单的,很容易理解,但是如果要完整的写出二分法的代码,还是有点挑战性的,可能会出现各种各样的问题,包括死循环、边界定义不清晰等,另外就是,可能传统的二分法我们都能理解,但是换了一下题目就不会用二分法的思想去解答了,以下附上个人比较喜欢的二分法模板:public class 二分查找 { /** * 递归法 */ public int search(int[] arr, int target, int left, int right) {

2020-12-22 19:32:46 453 4

原创 TOP K问题及使用优先队列实现堆

TOP K是一个非常经典的算法问题,灵活运用了排序算法,也是一个高频面试点,不仅要掌握TOP K思想,还应该学会使用该思想解决实际问题,剑指Offer中的“最小的k个数”就是TOP K问题的实际运用Top K问题是指在N个数的无序序列中找出最大的K个数或者最小的K个数,而其中的N往往都特别大,对于这种问题,最容易想到的办法当然就是先对其进行排序,然后直接取出最大或最小的K个元素就行了,但是这种方法往往是不可靠的,不仅时间效率低而且空间开销大,排序是对所有数都要进行排序,而实际上,这类问题只关心最大或者最小

2020-12-20 23:52:01 681

原创 八大排序算法

以下总结了常见的八大排序算法,对于编码比较复杂的堆排序、归并排序和基数排序,则只给出了排序的思想,没有附上代码八大排序算法的时间复杂度和空间复杂度:八大排序算法的稳定性总结:①稳定:冒泡排序、插入排序、归并排序、基数排序②不稳定:选择排序、快速排序、希尔排序、堆排序常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<Ο(2^n) <Ο(n!)一 冒泡排序public void bubbleSort(int[] a){ //

2020-12-20 17:31:55 1064

空空如也

空空如也

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

TA关注的人

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