begin

[滑动窗口] leetcode 76 Minimum Window Substring

故事扮演 提交于 2019-11-27 00:39:53
problem: https://leetcode.com/problems/minimum-window-substring/ 滑动窗口题。维护一个包含t中所有字符的最小滑动窗口,首先用一个hashmap记录所有t中的字符和出现次数,在s中每遇到一次计数器加一,找到了符合条件的窗口后,尝试向右移动窗口左指针,直到恰好能够满足条件为止。更新当前最小滑动窗口。 class Solution { public: string minWindow(string s, string t) { vector<int> dstChar(256,0); for(auto c: t) { dstChar[c]++; } string res; int count = t.size(); int begin = 0; for(int i = 0;i < s.size(); i++) // end { dstChar[s[i]]--; if(dstChar[s[i]] >= 0) { count--; } if(count == 0) { while(dstChar[s[begin]] + 1 <= 0) { dstChar[s[begin]]++; begin++; } int len = i - begin + 1; if(res.empty() || len < res.size()) {

leetcode 周赛 Weekly Contest 149

半腔热情 提交于 2019-11-26 23:07:40
这一次终于没有提交WA了。 1154. Day of the Year 简单题。打印一年到现在的天数,区分闰年即可。// 不要问我run, ping是啥意思 = =。 class Solution { public: int dayOfYear(string date) { vector<int> days_run = {31,29,31,30,31,30,31,31,30,31,30,31}; vector<int> days_ping = {31,28,31,30,31,30,31,31,30,31,30,31}; int year = -1; int month = -1; int day = -1; date.push_back('-'); string str; for(auto& ch : date) { if(ch == '-') { if(year == -1) { year = atoi(str.c_str()); } else if(month == -1) { month = atoi(str.c_str()); } else if(day == -1) { day = atoi(str.c_str()); } str.clear(); } else { str.push_back(ch); } } int res = 0; if((year % 4 == 0

POJ 2299 Ultra-QuickSort

房东的猫 提交于 2019-11-26 22:25:42
题目链接: https://vjudge.net/problem/POJ-2299 题目大意   归并排序求逆序数经典题。 分析   略。 代码如下 1 #include <cmath> 2 #include <ctime> 3 #include <iostream> 4 #include <string> 5 #include <vector> 6 #include <cstdio> 7 #include <cstdlib> 8 #include <cstring> 9 #include <queue> 10 #include <map> 11 #include <set> 12 #include <algorithm> 13 #include <cctype> 14 #include <stack> 15 #include <deque> 16 #include <list> 17 #include <sstream> 18 #include <cassert> 19 using namespace std; 20 21 #define INIT() ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); 22 #define Rep(i,n) for (int i = 0; i < (int)(n); ++i) 23

sql server 事务与try catch

情到浓时终转凉″ 提交于 2019-11-26 21:17:01
sql普通事务 begin transaction tr declare @error int ; set @error = 0 ; select * from Car_Brand set @error = @error + @@ERROR select 1 / 0 set @error = @error + @@ERROR select * from AREA set @error = @error + @@ERROR print ' i have executed! ' set @error = @error + @@ERROR print ' @@error: ' + cast ( @error as varchar ( 50 )) if ( @error <> 0 ) begin print ' executed failed ' ; rollback transaction tr end else begin print ' executed success ' ; commit transaction tr end 结合try catch 的事务 begin try begin transaction tr select * from Car_Brand update car_log set [ reason ] = ' ceshiceshiceshi ' where

mysql之存储过程和函数

走远了吗. 提交于 2019-11-26 19:39:18
/*--> */ /*--> */ 1. 变量 系统变量:   定义: 变量由系统提供,不是用户定义,属于服务器层面   查看所有变量: SELECT global | session variables;       查看满足条件的部分系统变量: SELECT global | session variables like '%char%';    查看某个系统变量: select @@系统变量名 或者 select @@[session]global.系统变量名;如select @@tx_isolation查看事务隔离级别       为变量赋值: set 系统变量名=值    系统全局变量(GLOBAL): # 查看全部的系统全局变量 SELECT GLOBAL VARIABLES; # 查看部分系统全局变量 SELECT GLOBAL VARIABLES LIKE '%char%';# 其他同上方式   作用域:服务器每次启动将为所有的全局变量赋初值,针对于所有会话有效,但不能跨重启; 会话变量(SESSION):   作用域:变量仅对于当前会话连接有效。 自定义变量:   使用步骤:声明、赋值、使用(查看,比较,运算符)   作用域:针对于当前会话有效。 # 赋值操作符:=或:= SET @用户变量名=值; SET @用户变量名:=值; SElECT @用户变量名:=值;

js中的克隆

≯℡__Kan透↙ 提交于 2019-11-26 17:02:27
1.如果克隆对象是基本类型,直接复制就可以 <script type="text/javascript"> var str1 = 'abc' var str2 = str1 console.log(str2) //abc str1 = '123' console.log(str2) //abc </script> 2.不是基本类型就不可以直接复制,以数组为例 <script type="text/javascript"> var a=[1,2,3,4]; var b= a; var c=b; c.pop(); console.log(a) //[1,2,3] console.log(b) //[1,2,3] console.log(c) //[1,2,3] ​ </script> 克隆的几种方法 //1.比较简单的遍历数组赋值 <script type="text/javascript"> var a = [1,2,3,4]; var b = []; for(var i = 0; i < a.length; i++){ b.push(a[i]) } console.log(b) //[1,2,3,4] </script> //2.slice方法 /* 1) 作用:从一个数组中截取出新的数组 2) 格式:数组名.slice(begin,end);  begin表示开的下标 

Oracle --存储过程基本语法

眉间皱痕 提交于 2019-11-26 16:37:44
一、存储过程的理解 create or replace procedure 存储过程名 as begin null end 行1:create or replace procedure 是一个SQL语句,通知oracle数据库去创建一个叫做skeleton储存过程,如果存在就覆盖它。 行2:as关键词表明后面将跟随一个pl/sql体。 行3:begin关键词表明pl/sql体的开始。 行4:null 表明pl/sql语句什么事情都不做,这句不能删除,因为pl/sql体中至少需要有一句。 行5:end关键词表明pl/sql体的结束。 二、存储过程创建语法 create or replace procedure 存储过程名 (param1 in type,para2 out type) as 变量1 类型(值范围); eg: vs_msg VARCHAR2(20); 变量2 类型(值范围); begin select count(*) into 变量1 from 表A where 列名 = param1; if (判断条件) then select 列名 into 变量2 from 表A where 列名=param1; dbms_output.put_line('打印信息'); elseif (判断条件) then dbms_output.putline('打印信息'); else

POJ 2309 BST

喜欢而已 提交于 2019-11-26 16:08:29
题目链接: https://vjudge.net/problem/POJ-2309 题目大意   略。 分析   lowbit的运用很妙,学到了。 代码如下 1 #include <cmath> 2 #include <ctime> 3 #include <iostream> 4 #include <string> 5 #include <vector> 6 #include <cstdio> 7 #include <cstdlib> 8 #include <cstring> 9 #include <queue> 10 #include <map> 11 #include <set> 12 #include <algorithm> 13 #include <cctype> 14 #include <stack> 15 #include <deque> 16 #include <list> 17 #include <sstream> 18 #include <cassert> 19 using namespace std; 20 21 #define INIT() ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); 22 #define Rep(i,n) for (int i = 0; i < (int)(n); ++i) 23

awk输入命令getline

筅森魡賤 提交于 2019-11-26 15:14:16
转自:http://www.cnblogs.com/276815076/archive/2011/12/05/2276605.html awk输入命令getline getline为awk所提供的输入命令 如果找到一条记录则getline返回1,如果到了文件结束(EOF)则返回0,如果错误则返回-1 A.getline从整体上来说,应这么理解它的用法: 当其左右无重定向符 | 或 < 时,getline作用于当前文件,读入当前文件的第一行给其后跟的变量var 或$0(无变量);应该注意到,由于awk在处理getline之前已经读入了一行,所以getline得到的返回结果是隔行的。 当其左右有重定向符 | 或 < 时,getline则作用于定向输入文件,由于该文件是刚打开,并没有被 awk读入一行,只是getline读入,那么getline返回的是该文件的第一行,而不是隔行。 B.getline用法大致可分为三大类(每大类又分两小类),即总共有6种用法。代码如下: QUOTE: awk ‘BEGIN{“cat data.txt”|getline d; print d}’ data2.txt awk ‘BEGIN{“cat data.txt”|getline; print $0}’ data2.txt $0可以省略 awk ‘BEGIN{getline d < “data.txt”;

awk输入命令getline

六眼飞鱼酱① 提交于 2019-11-26 15:08:35
getline为awk所提供的输入命令 如果找到一条记录则getline返回1,如果到了文件结束(EOF)则返回0,如果错误则返回-1 A.getline从整体上来说,应这么理解它的用法: 当其左右无重定向符 | 或 < 时,getline作用于当前文件,读入当前文件的第一行给其后跟的变量var 或$0(无变量);应该注意到,由于awk在处理getline之前已经读入了一行,所以getline得到的返回结果是隔行的。 当其左右有重定向符 | 或 < 时,getline则作用于定向输入文件,由于该文件是刚打开,并没有被 awk读入一行,只是getline读入,那么getline返回的是该文件的第一行,而不是隔行。 B.getline用法大致可分为三大类(每大类又分两小类),即总共有6种用法。代码如下: QUOTE: awk ‘BEGIN{“cat data.txt”|getline d; print d}’ data2.txt awk ‘BEGIN{“cat data.txt”|getline; print $0}’ data2.txt $0可以省略 awk ‘BEGIN{getline d < “data.txt”; print d}’ data2.txt awk ‘BEGIN{getline < “data.txt”; print $0}’ data2.txt 此种方法不成立