单调队列_滑动窗口 题目给定一个大小为 n≤106 的数组。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到 k 个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为 [1 3 -1 -3 5 3 6 7],k 为 3。窗口位置最小值最大值[1 3 -1] -3 5 3 6 7-131 [3 -1 -3] 5 3 6 7-331 3 [-1 -3 5] 3 6 7-351 3 -1 [-3 5 3] 6 7-35
单调栈[模板] 给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。输入格式第一行包含整数 N,表示数列长度。第二行包含 N 个整数,表示整数数列。输出格式共一行,包含 N 个整数,其中第 i 个数表示第 i 个数的左边第一个比它小的数,如果不存在则输出 −1。数据范围1≤N≤1051≤数列中元素≤109输入样例:53 4 2 7 5输出样例:-1 3 -1 2 2单调栈单调栈-输出下标的栈–3题多动图1模板(转载)以:3 4 2 7 5 为例,过程如下
字符串匹配算法(KMP) 目录声明题目内容朴素版本(暴力版)KMP算法声明本章仅是一个模板。给定一个模式串 S,以及一个模板串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。题目内容模板串 P 在模式串 S 中多次作为子串出现。求出模板串 P 在模式串 S 中所有出现的位置的起始下标。输入格式第一行输入整数 N,表示字符串 P 的长度。第二行输入字符串 P。第三行输入整数 M,表示字符串 S 的长度。第四行输入字符串 S。输出格式共一行,输出所有出现位置的起始下标(下标从 0 开始计数),整数之间
动态规划:坐标型+序列 目录说明入门题零钱兑换不同路径跳跃游戏坐标型动态规划不同路径 II粉刷房子解码方式最小路径和序列动态规划比特位计数粉刷房子II打家劫舍打家劫舍2买卖股票的最佳时间买卖股票的最佳时间II买卖股票的最佳时间III买卖股票的最佳时间IV说明例题leetcode上基本都可以找的到若leetcode上题目要vip可以跑lintcode入门题零钱兑换给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任
动态规划:背包 01背包有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输入样例4 51
八大排序算法 排序直接插入排序把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。个人理解:由于刚开始我们不知道数组是否有序,所以我们将设第一个是有序的,第二个和第一个的相比比他小,就放在它前面,同理可得第三个第四个等等直接插入排序的代码:void InsertSort(int* a, int n){ for (int i = 0; i < n - 1; i++) { //i的最大值为何是n-2,当i=n-1时,tmp也就是a
初始mysql(3w) 数据库基础1.1链接服务器cmd下输入mysql -h 127.0.0.1 -p 3306 -u root -p注意如果没有写 -h 127.0.0.1 默认链接本地如果没有写-p 3306 默认是链接3306端口号1.2 服务器,数据库,表关系所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。数据库服务器、数据库
c语言的文件操作 目录什么是文件文件名文件指针什么是文件硬盘上的文件文件。但是在程序设计中,我们一般谈得文件有两种:程序文件、数据文件。程序文件包括源程序文件(后缀为.c),目标文件(windows环境下后缀为.obj),可执行文件(windows后缀为.exe)数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如运行程序需要从中读取数据的文件,或者输出内容的文件文件名一个文件要有唯一的文件标识,以便用户识别和引用。文件名包括3部分:文件路劲+文件名主干+文件后缀例如:c:\cod
1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。输入格式:每个输入包含 1 个测试用例,即一个以科学计数法表示的实数 A。该数字的存储长度不超过 9999 字节,且其指数的绝对值不超过 9999。输出格式:对每个测试用
动态内存管理 文章目录为什么存在动态内存分配动态内存函数的介绍mallocfreecalloc常见的动态内存错误经典的笔试题柔性数组为什么存在动态内存分配根据我们已经掌握的内存开辟方式有:int val=20;//在栈上开辟四个字节的空间char arr[10]={0};//在栈上开辟10个字节的连续空间但上述开辟空间的方式有两个特点:1.空间开辟的大小是固定的2.数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程
1004 成绩排名 (20 分)(c语言结构体的写法) 读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩… … …第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。输出格式:对每个测试用例输出 2 行,