在看 JavaScript 框架设计的时候,知道了 jQuery 可以批量处理是因为一个叫数组化的概念,然后再对数组对象进行扩展,让数组可以完成更多的事情,但在扩展之前,先来看看几个原型方法
Array.prototype.slice
继续阅读 »
冒泡排序
原理主要是倒序比较
代码如下:
java
class Untitled {
public static void sortMaxMin(int array[]){
int i,j;
int len = array.length;
int temp;
//Boolean flag = true;
for (i = 0;ii;j--) {
if (array[j-1]>array[j]) {
temp = array[j];
继续阅读 »
真是巧妙的算法!
比起树上倍增,Tarjan算法实现起来更为简单,一个DFS加并查集即可。缺点便是:需要先把所有的查询都读进来,并且要储存结果。复杂度为O(n+q)。
Code
var
sets: array [1..100] of longint;
visited: array [1..100] of Boolean;
a: array [1..100, 1..100] of Boolean;
questions: array [1..1000] of record
x, y: longint;
ans: longint;
end;
qn, n,
继续阅读 »
链接:Link 耗时:0.699s
思路
dfs(t, x, y, d, s)表示当前走了t步,在(x,y),上一个方向为d,s为一个求和用的辅助变量。
当前位置无法走完剩下的路时直接回溯。可节省接近2s的时间。
ps: 这道题虽然没有明说每个城市只走一次,但它的确那样判了,这一点坑了我好久。
Code
//Accepted.
const
dx: array [1..4] of integer = (1, 0, 0, -1);
dy: array [1..4] of integer = (0, 1, -1, 0);
dir: array [1..4] of char = ('e', 'n', 's',
继续阅读 »
var
a: array [1..100, 1..100] of boolean;
depth: array [1..100] of longint;
father: array [1..100, 0..16] of longint;
n, m, i, x, y: longint;
root: longint;
procedure dfs(x: longint);
var
i: longint;
j: longint;
begin
depth[x] := depth[father[x][0]]+1;
j := 1;
while 1< 0 then
继续阅读 »
PHP 源码阅读array_combine()
PHP 源码阅读之array_combine()
array_combine() 在 ext/standard/array.c 中
array_combine(array $keys , array $values) — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
继续阅读 »
content
{:toc}
记录一下阅读蝴蝶书的笔记,本篇为书中以下章节的笔记:继承、数组和正则表达式。
继承
继承的两大好处:代码重用,引入一套类型系统的规范。
伪类
JavaScript 通过构造器函数产生对象。
继续阅读 »
问题描述:已知数组a以及若干个查询(x, y),求a[x~y]之间的最小值。
分析
不难发现:若取t使得$2^t\leq y-x+1$且$2^{t+1}>y-x+1$,则有:
$$[x, x+t]\bigcup[y-t+1,y]=[x,y]$$
运用二进制的思想,我们只需预处理出$i~i+2^k-1$之间的最小值,即可快速完成查询。设dp[i][j]为$i~i+2^j-1$之间的最小值,则有:
$$dp[i][j]=min(dp[i][j-1],dp[i+2^{j-1}][j-1])$$。
Code
var
a: array [1..100000] of longint;
dp: array [1..1000
继续阅读 »
链接:Link 状态:WA
分析
做了两个小时,很可惜最终还是WA了。非常奇怪——和网上的C++代码运行结果完全一样,但却WA了。不过,在这里我还是记录一下解题的过程。
这道题数据量很小,直接爆搜每个空位,用*, +, -, #0来代表符号或不填。
Code
const
operators: array [1..4] of char = ('*', '+', '-', #0); //符号
var
s: string;
_, n: integer;
op: array [0..10] of char;
yes: Boolean;
function toValue(ch: char):
继续阅读 »
最近写了一道数组去重的题,手抖,紧张,没写好。后来写了一会儿觉得还挺有意义的。现在做一下记录
Test case
测试用例如下
import test from 'ava'
import unique from '../src/unique'
继续阅读 »