num

滑动窗口的最大值

浪子不回头ぞ 提交于 2020-03-25 21:43:22
滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2,6,[2,5,1]}。 使用一个队列做小标索引, 保存窗内最大值的下标, 还要判断这个索引是否在当前窗内 class Solution { public: vector<int> maxInWindows(const vector<int>& num, unsigned int size) { vector<int> ret; if ((num.size() >= size ) && (size > 0)) { deque<int> index; // 用于存放下标的索引 for (auto i = 0; i < size; i++) { // 存放前size个中的最大值 // 重复元素只存储一份, 所以用大于等于号 while ((! index.empty(

剑指offer---滑动窗口的最大值

冷暖自知 提交于 2020-03-25 21:30:31
我开始的方法。。。跟原始人一样 还是太菜 class Solution { public: int FindMax(const vector<int> &a, int start, int end) { int MaxNum = -100000; for (int i = start; i <= end; ++i) { MaxNum = max(MaxNum, a[i]); } return MaxNum; } vector<int> maxInWindows(const vector<int>& num, unsigned int size) { vector<int> re; int in_size = num.size(); if (size <= 0) return re; if (size > 0 && size < in_size) { for (int i = 0; i <= (in_size - size); ++i) { int temp = FindMax(num, i, i + size - 1); re.push_back(temp); } return re; } else if(size==in_size) { int temp=FindMax(num,0,in_size-1); re.push_back(temp); return re; } else

滑动窗口的最大值

落花浮王杯 提交于 2020-03-25 21:29:38
原文地址: https://www.jianshu.com/p/e9af38e066bf 时间限制:1秒 空间限制:32768K 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5};针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1},{2,[3,4,2],6,2,5,1},{2,3,[4,2,6],2,5,1},{2,3,4,[2,6,2],5,1},{2,3,4,2,[6,2,5],1},{2,3,4,2,6,[2,5,1]}。 我的代码 class Solution { public: vector<int> maxInWindows(const vector<int>& num, unsigned int size) { vector<int> res; int siz=num.size(); if(siz<1 || size<1 || siz<size) return res; if(size==1) return num; deque<int> tmp; for(int i=0;i<size;i++){ while((!tmp.empty())&&(tmp

筛选素数

有些话、适合烂在心里 提交于 2020-03-25 15:28:17
功能:高效率得到1~n范围内的所有素数. 1 #include <cstdio> 2 #include <iostream> 3 4 using namespace std; 5 const int maxn 10000000 6 bool visit[maxn+3]; 7 int prime[maxn], n; ///prime存1~n的所有素数、大概有(x / lnx)个 8 9 void getprime() { 10 memset(visit, false, sizeof(visit)); 11 int num = 0; 12 for (int i = 2; i <= n; i++) { 13 if ( !visit[i] ) prime[++num] = i; 14 for (int j = 1; j <= num && i * prime[j] <= n ; j++) { 15 visit[ i * prime[j] ] = true; 16 if (i % prime[j] == 0) break; //点睛之笔 17 } 18 } 19 } 来源: https://www.cnblogs.com/Ash-ly/p/5735497.html

js函数 循环

依然范特西╮ 提交于 2020-03-25 04:32:16
值类型之间的相互转化 转字符串:String() | .toString() | "" + // 123..toString() | 重点是 "" + 转数字:Number(a) | parseFloat() | parseInt() | + // +'123' // parseFloat('3.14.15') => 3.14 | parseInt('3.14.15') => 3 转布尔:Boolean(a) ​ 非数字:NaN // 当一个其他类型转化为数字类型的产物 // 任何判断一个结果是否是NaN, isNaN(运算) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>类型转化</title> </head> <body> 值类型之间的相互转化 </body> <script> // number | string | boolean ​ // 转化为boolean var num = 10; var s = "123"; ​ num = 0; s = ""; var b1 = Boolean(num); var b2 = Boolean(s); console.log(b1, b2); ​ // 后期我们会在if分支结构中的判断以及循环中的判断中使用boolean类型, // 以上两种情况下,

个人项目WordCount(C++/QT)

∥☆過路亽.° 提交于 2020-03-25 04:28:12
个人项目WordCount(C++/QT) GitHub项目地址: https://github.com/Nova-cjp/Word-Count (GUI程序过大尚未上传,可通过百度云下载) 百度云链接: https://pan.baidu.com/s/1MSOXu0KbuUMJfJ8p8bwMwQ 提取码:jef2 一、PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 15 · Estimate · 估计这个任务需要多少时间 10 15 Development 开发 380 1240 · Analysis · 需求分析 (包括学习新技术) 90 150 · Design Spec · 生成设计文档 ---- 10 · Design Review · 设计复审 (和同事审核设计文档) 5 5 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 15 · Design · 具体设计 30 60 · Coding · 具体编码 150 240 · Code Review · 代码复审 30 10 · Test · 测试(自我测试,修改代码,提交修改) 60 270 Reporting 报告 100 40 · Test Report · 测试报告

python简介和入门

你说的曾经没有我的故事 提交于 2020-03-24 19:29:43
本文主要是介绍python的简介,安装,变量,注释,输入,输出条件判断,循环,格式化输出 1、Python简介 2、Python的工具 3、Python的单引号,双引号,三引号 4、Python的输入 5、Python的条件判断 6、Python的循环 7、Python的格式化输出 1、1 Python的简介 Python是一种面向对象,解释性的计算机语言,特点是语法简单,简单易学 什么是解释性语言?程序在运行的时候,通过一个解释器,把代码一句一句的翻译成计算机语言然后运行,比如Python,shell,ruby,java,perl等都是解释性语言,执行速度没有编译性语言快 什么是编译性语言?先把写好的程序编译成计算机语言然后执行,就是所谓的一次编译导出运行,比如c,c++,执行速度比较快 目前都是用的最新的python3.x的版本 Python由模块组成,一个模块对应一个源文件 模块由语句组成,运行时,按照模块中的语句顺序执行 2、1 python编写所需要的工具 python编写所需要的工具时pycharm,自己可以自行在网上下载安装,此处..... 3、1变量 变量简单的说就是存东西的,供后面的程序使用,python中定义变量很简单,不需要指定数据类型。Python变量里面存的是内存地址,变量通过地址引用了对象,对象位于堆内存,变量位于栈内存 变量的定义: 变量名=表达式

JavaScript中的迭代器与循环

烂漫一生 提交于 2020-03-24 18:15:35
引言: 本文涉及内容包括: forEach方法 for-in方法 for-of方法 eval()方法 map()方法 今天来总结一下,JS中我们常见的循环方式与迭代器,深入了解他们之间的区别,及适合的使用场景。 最早的数组遍历方式 var a = ["a", "b", "c"]; for(var index = 0;index < a.length;index++){ console.log(a[index]); } for循环 ,我们最熟悉也是最常用的循环迭代方式,后来的许多迭代方法都是基于for循环封装的。 1 forEach 语法: [].forEach( function (value, index, array) { // ... }); forEach遍历数组,而不是遍历对象哦,而且在遍历的过程中不能被终止,必须每一个值遍历一遍后才能停下来. 也就是说:你不能使用break来退出循环, 不能使用return语句来返回到外层 jquery中forEach 注意其与jQuery的$.each类似,只不过参数正好是相反的! $.each([], function (index, value, array) { // ... }); 2 for...in 适合进行普通对象的遍历 for-in循环遍历对象的key,即键值对的键名。 特性如下: 1. 方法遍历到的index

Python常用语句及流程控制

孤人 提交于 2020-03-24 17:42:10
1. 赋值语句常用技巧 通过序列解包(sequence unpacking) 可以将多个值的序列解开,让后一一放置到变量的序列中。解包的序列中的元素必须和等号左边变量数量一致。如下: 1 values = 1,2,3 2 3 print values # output: (1, 2, 3) 4 5 x,y,z = values # output: 1 2 3 6 print x,y,z 7 8 bob_Info = {'name':'Bob','email':'bob@gmail.com'} 9 key,value = bob_Info.popitem() 10 11 print value # output: Bob 1.2 链式赋值 通过使用链式赋值(chained assignment)可以将一个值同时赋给多个变量,如下: x = y = z = 1 print x,y,z # output: 1 1 1 1.3 增量赋值 将表达式运算符( + 、 - 、 * 、 % 、 / 等)放置在赋值运算符(=)的左边,这些写法被称为增量赋值(augmented assignment),如下: 1 x = 6 2 3 x += 1 4 print x # output: 7 5 6 x *= 6 7 print x # output: 42 2. 缩进 —— Python语言的风格

如何实现一个parseInt

放肆的年华 提交于 2020-03-24 16:09:40
如何实现一个parseInt function(string, [radix]) {} 如果string不为字符串类型, 则先将string转化为字符串类型 string会忽略前后的空白 依次解析字符, 如果字符不是指定基数中的字符( 例如:2进制中的3、 10进制中的'f' )则停止解析( 首字符为'+'或'-'时除外 ), 返回已经解析好的整数 如果无法解析为整数, 则返回NaN radix 默认值不为10, 在radix为undefined、0或者没有指定时, 做以下处理 如果string以'0X'或'0x'开头时, 基数为16 如果string以'0'开头时, 基数为8或者10(每个浏览器的具体实现不同, es5规定此时为10) 如果string以其他任何字符开头时, 基数为10 radix的范围为2-36 不考虑进制radix 代码实现 const _parseInt = (str, radix) => { if (typeof str !== 'string') str = String(str) str = str.trim() const regex = /^(?<fuhao>[\+|\-]*)(?<num>\d+)/ if (!regex.test(str)) return NaN const groups = str.match(regex).groups