题意 两种操作,第一种可以向序列里加数,第二种查询长度为k时的序列的第i大元素。 思路 优先队列维护最大堆和最小堆分别存放前i-1大的元素前k-i小的元素。 将当前序列的元素压入最小堆,如果最小堆的最小数大于最大堆的最大数则进行交换,保证最大堆中的所有数小于最小堆。 因为i值每进行一次自增1,所以每 ...
分类:
其他好文 时间:
2020-05-28 09:14:27
阅读次数:
86
问题描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE :给出的所有元素都大于0,若数组大小为0,请返回0 分析 思路 ...
分类:
编程语言 时间:
2020-05-25 00:07:09
阅读次数:
57
题目: 思路: 关于旋转数组有各种变种问题:是否有重复元素、寻找最大值最小值、寻找旋转点下标(旋转点的值等于最小值)、查找给定元素。本题就是对有重复元素的旋转数组,寻找其最小值。 首先想到二分查找没问题,关键在于怎么通过判断middle元素的相对大小去逐渐缩小搜索区间。如下图所示(无重复元素) 循环 ...
分类:
编程语言 时间:
2020-05-22 14:22:49
阅读次数:
45
一、技术总结 1. 题意是,给定N个数字,然后要使得生成一个m x n的矩阵,同时m =n;保证他们之间相差最小,数字要从大到小顺时针进行填充进入矩阵。 2. 对于输入数字,使用cmp比较函数进行排序,同时使用vector进行存储。 2. 具体形式如下图: 3. 由上图知道,我们分析得出,m可以这样 ...
分类:
其他好文 时间:
2020-05-21 00:39:33
阅读次数:
48
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 分析 1. ...
分类:
编程语言 时间:
2020-05-14 15:11:52
阅读次数:
63
贪心算法一共有两类问题: 1、苹果数量一定,求最多能满足多少个孩子 2、孩子数量一定(要满足某一固定目标),求最少需要多少个苹果。(leetcode 455) 总之,贪心算法就是一个变量一定,求另一个变量最多或者最少值。 官方的说法是贪心算法一般用来解决需要 “找到要做某事的最小数量” 或 “找到在 ...
分类:
编程语言 时间:
2020-05-11 13:12:04
阅读次数:
59
1)四种整数类型(byte、short、int、long): byte:8 位,用于表示最小数据单位,如文件中数据,-128~127 short:16 位,很少用,-32768 ~ 32767 int:32 位、最常用,-2^31-1~2^31 (21 亿) long:64 位、次常用 2)两种浮点 ...
分类:
编程语言 时间:
2020-05-10 20:50:21
阅读次数:
87
最大数#include <stdio.h>#define MAX 10int main() { int n, a[MAX]; printf("Input the number of figure(<10):\n"); scanf("%d",&n); for (int i = 0; i < n; i+ ...
分类:
其他好文 时间:
2020-05-04 15:48:54
阅读次数:
172
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 考察二分法: import ...
分类:
编程语言 时间:
2020-05-04 15:04:30
阅读次数:
63
题目 https://leetcode cn.com/problems/find the kth smallest sum of a matrix with sorted rows/ 给你一个 m n 的矩阵 mat,以及一个整数 k ,矩阵中的每一行都以非递减的顺序排列。 你可以从每一行中选出 1 ...
分类:
编程语言 时间:
2020-05-03 20:16:18
阅读次数:
80