t2

力扣---2020.3.4

家住魔仙堡 提交于 2020-03-16 15:33:25
994. 腐烂的橘子 class Solution { int [ ] dr = new int [ ] { - 1 , 0 , 1 , 0 } ; int [ ] dc = new int [ ] { 0 , - 1 , 0 , 1 } ; public int orangesRotting ( int [ ] [ ] grid ) { int R = grid . length , C = grid [ 0 ] . length ; // queue : all starting cells with rotten oranges Queue < Integer > queue = new ArrayDeque ( ) ; Map < Integer , Integer > depth = new HashMap ( ) ; for ( int r = 0 ; r < R ; ++ r ) for ( int c = 0 ; c < C ; ++ c ) if ( grid [ r ] [ c ] == 2 ) { int code = r * C + c ; queue . add ( code ) ; depth . put ( code , 0 ) ; } int ans = 0 ; while ( ! queue . isEmpty ( ) ) { int code =

SQL查询强化训练(1)

自作多情 提交于 2020-02-08 01:45:58
1 SELECT T1.C#, 2 3 ROUND(T1.AVG_SCORE, 2) AVG_SCORE, 4 5 ROUND(T2.PASS_COUNT / T1.ALL_COUNT, 2) PASS_POINT 6 7 FROM (SELECT DISTINCT C#, 8 9 COUNT(1) OVER(PARTITION BY C# ORDER BY C#) ALL_COUNT, 10 11 AVG(SCORE) OVER(PARTITION BY C# ORDER BY C#) AVG_SCORE 12 13 FROM SC) T1, 14 15 (SELECT DISTINCT C#, 16 17 COUNT(1) OVER(PARTITION BY C# ORDER BY C#) PASS_COUNT 18 19 FROM SC 20 21 WHERE SCORE >= 60) T2 22 23 WHERE T1.C# = T2.C# 24 25 ORDER BY AVG_SCORE, PASS_POINT DESC Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;   Union All,对两个结果集进行并集操作,包括重复行,不进行排序;   Intersect,对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;  

九省联考 2018 游记

和自甴很熟 提交于 2020-01-17 08:19:53
前言: 作为一个SD的蒟蒻,我非常确信我就是来划水的2333,希望我能进二轮吧hhhh DAY0: 玩了一上午2k之后,又去打了一下午球,,,晚上和几个很好的朋友聊了聊天,收到了满满的鼓励qwq。 这一天就当调整心情了,毕竟考试的时候想太多就真的gg了。 DAY1: 早上来的有点晚,,,都开始入场了。。。 旁边的是一个莒县童鞋,不过实力应该是和dzm差远了(不是我损那个人而是dzm太强啦2333)。强者神葱就在我后面的后面的后面,希望强场保佑我hhhhh。 发密码之前整个考场的人都在赶紧码一码东西,就我在思考人生的样子。。。。 8:00的时候,清华大学的吕欣童鞋准时来我们这写密码了23333。 第一眼看T1,这不是个傻逼dp吗,总状态只有可重集组合那么多啊。。。。但是还不放心,于是dfs出了总状态数,发现好像的确是这样诶。。。 于是直接开始搜状态然后写dp。。。。。写完了之后发现,woc过不了样例啊2333333。 这时候差点慌了,,但为了求稳,我又打了个暴力,,,但是又没有过样例!!!!! 这时候已经过去1h多了,说实话当时的确有点慌,,,,正当要放弃的时候突然想起来应该反着DP啊,状态应该设成到终态的最优值,然后dp找出后继的最优值。。。于是赶紧改了一下,终于两个样例同时过啦!!!! 这时候过去了差不多 1.5h吧。。。 开始看T2,,,发现好像一道我做过的某题

归并排序求逆序对

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-13 22:24:29
归并求逆序对 归并求逆序对 是分治的一个经典例子。 简述算法: 利用归并把序列对半分,在一般的归并过程中,我们在前后两部分各设两个指针,按照大小顺序合并成一个序列。 我们要做的就是在这个过程中记录逆序对个数,什么情况下会有逆序对呢? 无非是在前面的数比在后面的数大(翻译过来:在前半部分的数比在后半部分的数大) 设前半部分的指针为t1,后半部分的指针为t2 如果a[t1] > a[t2],那么t1~mid的元素一定都比t2大,一定都可以与t2形成逆序对: ans+= (mid- t1+ 1)+1 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 5 using namespace std; 6 7 const int N=100010; 8 int a[N],b[N],n,ans=0; 9 10 void merge(int l,int r) 11 { 12 if (l==r) return; 13 int mid=(l+r)>>1; 14 merge(l,mid); 15 merge(mid+1,r); 16 int t1=l; 17 int t2=mid+1; 18 for (int i=l;i<=r;i++) 19 { 20 if ((t1<=mid&&a[t1]<=a[t2])||t2>r) { 21

查看锁表

狂风中的少年 提交于 2019-12-06 16:59:30
select t2.username, t2.sid, t2.serial#, t3.object_name, t2.OSUSER, t2.MACHINE, t2.PROGRAM, t2.LOGON_TIME, t2.COMMAND, t2.LOCKWAIT, t2.SADDR, t2.PADDR, t2.TADDR, t2.SQL_ADDRESS, t1.LOCKED_MODE from v$locked_object t1, v$session t2, dba_objects t3 where t1.session_id = t2.sid and t1.object_id = t3.object_id order by t2.logon_time; 来源: https://www.cnblogs.com/shuihaya/p/11996257.html

两数相加

岁酱吖の 提交于 2019-12-05 12:13:24
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { if(!l1&&!l2) return nullptr; else if(!l1||!l2) return (!l1)?l2:l1; int carry=0; ListNode *res=new ListNode(-1); ListNode *t1=l1,*t2=l2,*t=res; while(t1||t2||carry) { int num=0;

CSP-S认证体验

依然范特西╮ 提交于 2019-12-04 21:42:45
CPS-S 2019 总有一些日子,让你伤了心 总有一些题目,让你死了心 总有一些算法,让你碎了心 总有一些思路,让你迷了心 总有一些比赛,让你凉了心 总有一些协会,让你穷了心 总有一些出题人,让你看透了心 这是我,大大小小,参加的第n次比赛了。怎么说,两个字:心累。 比赛的前一天,我就是在家睡了个觉,一觉睡到11点半。下午也没干什么,就打打游戏,看看电视,睡睡觉。下4点多就出发了。一路就听歌,看番,到酒店也才8点半。外卖来一发,手机玩一玩。不过,十一点就睡了。这时间算早了吧? 然而不太好入睡,但又感觉睡着了。于是,第二天起来精神还算OK。 自信满满,到了广州二中,一下车,我大叫“走走走,AKAK” 进入正题: Day1: 拿到题目,一看,T1,傻逼位运算小学题,5分钟。然后T2,一看,括号序,似乎很水 T3,好像很毒瘤,但因该可以水很多分。 打完T1,9点多。自信自信。试一下64 18446744073709551615,秒出。Pascal的qword还是很棒棒的。 然后T2,咂眼一看,我不会,之后看看T3,一条链,好像不会。菊花,好像也不会,又看回T2,5*10^5,好大,不会…… 之后就一直徘徊在T2,T3之间。最终无奈之下,T2打了n^2暴力,T3打了!级别。 我T2曾几次接近正确,却都被我找出了反例,然而一出考场,“我十点就200”“这T3杠了我三个小时”“T1T2大水题

[20180705]关于hash join 2.txt

匿名 (未验证) 提交于 2019-12-03 00:39:02
[20180705]关于hash join 2.txt --//昨天优化sql语句,执行计划hash join right sna,加入一个约束设置XX字段not null,逻辑读从上万下降到50. --//关于hash join派生的执行计划,而且hash join还在外连接时支持右关联,特别是11g,加入NULL-AWARW/Single Null-Aware的判断,许 --//多我自己很混乱,做一点总结. --//NA => Null-Aware. --//SNA => Single Null-Aware 1.环境: SCOTT@book > @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production create table t1 as select level id ,‘t1‘||to_char

删除以id为主键地重复记录

匿名 (未验证) 提交于 2019-12-02 23:49:02
要求能够通过一个sql语句删除所有重复的记录,并只留下重复记录中的一条数据 思路: 1 --- 删除重复的角色权限配置 2 DELETE FROM sys_roleright_t t4 WHERE t4.FRIGHTID IN ( 3 SELECT t1.FRIGHTID 4 FROM sys_roleright_t t1 5 JOIN (SELECT min(t2.FRIGHTID) AS FRIGHTID, t2.FROLEID, t2.FAPPID, count(0) 6 FROM sys_roleright_t t2 7 GROUP BY t2.FROLEID, t2.FAPPID 8 HAVING count(0) > 1 9 ) t3 ON t1.FROLEID = t3.FROLEID AND t1.FAPPID = t3.FAPPID 10 WHERE t1.FRIGHTID > t3.FRIGHTID 11 );

浮点数运算的精确

自作多情 提交于 2019-12-02 22:31:58
var floatObj = function () { /* * 判断obj是否为一个整数 */ function isInteger(obj) { return Math.floor(obj) === obj } /* * 将一个浮点数转成整数,返回整数和倍数。如 3.14 >> 314,倍数是 100 * @param floatNum {number} 小数 * @return {object} * {times:100, num: 314} */ function toInteger(floatNum) { var ret = {times: 1, num: 0}; if (isInteger(floatNum)) { ret.num = floatNum; return ret } var strfi = floatNum + ''; var dotPos = strfi.indexOf('.'); var len = strfi.substr(dotPos + 1).length; var times = Math.pow(10, len); var intNum = parseInt(floatNum * times + 0.5, 10); ret.times = times; ret.num = intNum; return ret } /* * 核心方法