排序
Hey1213
这个作者很懒,什么都没留下…
展开
-
162. 寻找峰值
题目:峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。说明:你的解法应该是 O(logN) 时间复杂度的。思路:用二分即可#!/usr/bin/env python3...原创 2019-10-30 22:53:15 · 182 阅读 · 0 评论 -
155. 最小栈
题目:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。思路:本题的重点在于如何在常数时间检索到栈里的最小元素用另一个栈min_stack记录来记录截止当前的最小值,如果新加进来的元素小于等于min_sta...原创 2019-10-30 22:22:11 · 104 阅读 · 0 评论 -
148. 排序链表
题目:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。本题的重点在于,时间复杂度和空间复杂度的限制题解:链表的优势在于可以通过修改引用来更改节点顺序,无需开辟额外空间,而已循环交换。题解采用了归并排序的方法,通过不断二分排序再合并的方法,实现了O(nlogn)的时间复杂度和O(1)的空间复杂度下图来自LeetCode网站题解:链接:https://leetc...原创 2019-10-30 20:52:21 · 181 阅读 · 0 评论 -
628. 三个数的最大乘积
题目:给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。可以说是很傻很傻很傻了!!!这道题我做了一天!!!先是想用堆排序做!!!然后发现正负有很多种情况不知道怎么判断!!!越来越暴躁 越来越乱!!!其实最开始应该先列出各种情况,然后分析一下就会知道最大乘积的情况只有两种:min1min2max1, max1max2max3按照这个思路就很简单了╮(╯▽╰)╭f...原创 2019-04-10 18:12:50 · 126 阅读 · 0 评论