begin

面试题 38: 字符串排列

最后都变了- 提交于 2020-04-08 07:11:03
基于回溯法思想: import java.util.ArrayList; import java.util.Collections; public class Solution { public ArrayList<String> Permutation(String str) { ArrayList<String> list = new ArrayList<String>(); if(str==null) return list; char[] chArr=str.toCharArray(); if(chArr.length==0) return list; fullSort(chArr,0,list); Collections.sort(list); return list; } private void fullSort(char[] chArr,int begin,ArrayList<String> list){ int length=chArr.length; if(begin==chArr.length-1){ //如果字符串中有两个元素相同,会出现相同的全排列,所以需要去重 if(!list.contains(String.valueOf(chArr))) list.add(String.valueOf(chArr)); return; } for(int index

js 实现动画功能,完整解析插件版 可更改配置参数 (正在更新....)

Deadly 提交于 2020-04-07 09:47:50
前言: 本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽。 本篇文章为您分析一下原生JS写一个运动插件 基本功能: 补充中...... 补充中...... HTML结构 <div class="container"></div> <p> <button id="start">开始</button> <button id="stop">结束</button> </p> html的结构只是为了调试运动插件而随意创建的。 CSS样式 <style> .container { width: 100px; height: 100px; background-color: aqua; position: absolute; left: 0; top: 0; } p{ position: absolute; top: 50px; left: 100px; } </style> 页面效果如下: JS行为 需求分析: 动画: 某些元素的某些CSS属性,在一段时间内,从一个值变化到另一个值 动画插件: 某些数据(数字),在一段时间内,从一个值变化到另一个值 不考虑DOM元素,DOM元素由用户传入 创建一个构造函数,让用户传入一些必须的参数(值、函数) 引入helper.js插件(自己封装的),使用对象混合 计算运动的总次数 获取当前的运动状态

NOIP模板

我只是一个虾纸丫 提交于 2020-03-30 16:12:02
快排 procedure qsort(l,r:longint); var i,j,t,m:longint; begin i:=l; j:=r; m:=a[(i+j) div 2]; repeat while a[i]<m do inc(i); while m<a[j] do dec(j); if i<=j then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; inc(i); dec(j); end; until i>j; if i<r then qsort(i,r); if j>l then qsort(l,j); end; 堆 1.数组开两倍 procedure insert(x:longint); var t,s,v:longint; begin len:=len+1; f[len]:=x; s:=len; while (s<>1)and(f[s div 2]>f[s]) do begin v:=f[s div 2]; f[s div 2]:=f[s]; f[s]:=v; s:=s div 2; end; end; function get:longint; var t,s,v:longint; begin get:=f[1]; f[1]:=f[len]; len:=len-1; t:=1; while (t*2<=len)or(t*2+1<=len

种树 (codevs 1653) 题解

拈花ヽ惹草 提交于 2020-03-30 03:57:58
【问题描述】 一条街的一边有几座房子。因为环保原因居民想要在路边种些树。路边的地区被分割成块,并被编号为1..n。每个块大小为一个单位尺寸并最多可种一棵树。每个居民想在门前种些树并指定了三个号码b,e,t。这三个数表示该居民想在b和e之间最少种t棵树。当然b<=e,居民必须保证在指定地区不能种多于地区被分割成块数的树,即要求t<=e-b+1。允许居民想种树的各自区域可以交叉。出于资金短缺的原因,环保部门请你求出能够满足所有居民的要求,需要种树的最少数量。 【样例输入】 9 4 1 4 2 4 6 2 8 9 2 3 5 2 【样例输出】 5 【解题思路】 本题用贪心算法,先以b为关键字排序,然后从后往前种,因为这样与后面的重合的可能性才越大,定义一个布尔型数组,每种一棵,就赋为true,最后计算true的数量即可。 【代码实现】 1 type rec=record 2 b,e,t:longint; 3 end; 4 var a:array[1..30000] of rec; 5 f:array[1..30000] of boolean; 6 i,j,n,m,ans:longint; 7 procedure sort(l,r:longint); 8 var i,j,x:longint; 9 y:rec; 10 begin 11 i:=l; 12 j:=r; 13 x:=a[(l+r)

PL/SQL编程基础——PL/SQL简介

时光总嘲笑我的痴心妄想 提交于 2020-03-30 02:36:04
课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1、 了解PL/SQL的主要特点 2、 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言。 SQL与编程语言之间的不同之处在于,SQL没有变量,SQL没有流程控制(分支、循环)。而PL/SQL是结构化的和过程化的结合体,而且最为重要的是,在用户执行多条SQL语句时,每一条SQL语句都是逐一的发送给数据库,而PL/SQL可以一次性将多条SQL语句一起发送给数据库,减少网络流量问题。     SQL执行 PL/SQL执行 PL/SQL语法结构 语法: DECLARE - 声明部分,例如。定义变量、常量、游标。 BEGIN - 程序编写、SQL语句 EXECEPTION - 处理异常 END: / 说明: 声明部分(DECLARE) :包含变量定义、用户定义的PL/SQL类型、游标、引用的函数或者过程。 执行部分(BEGIN) :包含变量赋值、对象初始化、条件结构、迭代结构、嵌套的PL/SQL匿名块,或者是对局部或者时存储PL/SQL命名块的调用。 异常部分:(EXECEPTION) :包含错误处理语句,该语句可以像执行部分一样所有使用项。 结束部分(END) :程序执行到END表示结束,分号用于结束匿名块,而正斜杠(/

浅析Java中CountDownLatch用法

廉价感情. 提交于 2020-03-29 20:15:43
/** CountDownLatch类是一个同步计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countDown()方法,计数器减1,计数器大于0 时,await()方法会阻塞程序继续执行 CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。下面以一个模拟运动员比赛的例子加以说明。 */ import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class CountDownLatchDemo { private static final int PLAYER_AMOUNT = 5; public CountDownLatchDemo() { // TODO Auto-generated constructor stub } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated

jq 日期区间处理

大城市里の小女人 提交于 2020-03-27 18:24:38
<html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="./js/jquery-2.1.1.js"></script> </head> <body> <div class="getDay"><a href="#">获取2017-08-28到2017-09-08该段时间内的所有以天为单位的日期</a></div> <div class="getWeek"><a href="#">获取2017-06-05到2017-09-04该段时间内的所有以周一为单位的日期</a></div> <div class="month"><a href="#">获取2016-06-01到2017-09-01该段时间内的所有以月为单位的日期</a></div> <div class="year"><a href="#">获取2003-01-01到2017-01-01该段时间内的所有以年为单位的日期</a></div> </body> <script> $(document).ready(function () { $(".getDay").click(function () { alert(getDayAll("2017-08-28","2017-09-08")); }) $(".getWeek")

呵呵--到哪哪闲(3)?

时间秒杀一切 提交于 2020-03-27 06:09:56
<0> . DNS的使用!起初连不上不服务的数据库,是因为没有加入域, sql 基础类的使用 1.连上数据库,我晕了,,表真多,,,,查询所有表名|视图 select * from information_schema.tables where table_type='BASE TABLE' select * from information_schema.tables where table_type='VIEW' 查询视图 select * from information_schema.views --261个 查询存储过程 (注:xtype = p , v ) select * from sysobjects a where a.xtype = 'p' Account Activity Annotation Appointment AttributeMapBase BL_IT_CWRDown BL_IT_CWB Build** Bulk** Business** Calendar** Campaign** Competitor Contact Contract Customer Discount DisplayString DocumentIndex EmailBase EmailExtensionBase entityMapBase EquipmentBase

算法复习之坐标离散化

无人久伴 提交于 2020-03-27 05:52:22
离散化概念 例子: 1. 描述: 在桌子上放了N个平行于坐标轴的矩形,这N个矩形可能有互相覆盖的部分,求它们组成的图形的面积。 输入格式:输入第一行为一个数N(1<=N<=100),表示矩形的数量,下面N行,每行四个整数,分别表示每个矩形的左下角 和右上角的坐标,坐标范围为-10^8到10^8之间的整数。 输出格式: 输出只有一行,一个整数,表示图形面积。 样例输入: 3 1 1 4 3 2 -1 3 2 4 0 5 2 样例输出: 10 #include<iostream> #include<algorithm> using namespace std; const int maxn=210; int x1[maxn],y1[maxn],x2[maxn],y2[maxn],x[maxn],y[maxn]; void init() { for(int i=0; i<maxn; i++) { x1[i]=y1[i]=x2[i]=y2[i]=x[i]=y[i]=0; } } int main() { int n; while(cin>>n) { init(); for(int i=1; i<=n; i++) { cin>>x1[i]>>y1[i]>>x2[i]>>y2[i]; x[2*i-1]=x1[i]; x[2*i]=x2[i]; y[2*i-1]=y1[i]; y[2*i]=y2

delphi中子窗体通用打开函数

烈酒焚心 提交于 2020-03-26 07:03:37
没有用MDI类型,是用setparent来设置子窗体的,在主窗体上放置一个panel2做为子窗体的父容器。Main为主窗体。子窗体中最好在关闭和ondestory中写上代码,在Onclose中写action:=cafree ,在ondestory中写上childfrm=nil; 如下代码: procedure CreateChildFrm(AForm:TCustomForm;const AFormClass:TFormClass); function isExist():boolean; var i:integer; begin result:=False; for i :=0 to Screen.FormCount-1 do begin if Screen.Forms[i].ClassType=AFormClass then begin Result:=True; AForm:=TForm(Screen.Forms[i]); Break; end; end; end; begin if not isExist() then begin AForm:=AFormClass.Create(Main); Winapi.Windows.SetParent(AForm.Handle,Main.Panel2.Handle); end else begin ShowWindow(AForm