positions := array[0..max_scores] of 0
foreach of scores as score
positions[score] := 1
position := 1
for i := max_scores to 0
temp := position + positions[i]
positions[i] := position
position := temp
result := array[]
foreach of alice as score
result[] := positions[score]
n | O(n) | O(log n)
1 | 1 | 100
10 | 10 | 200
100 | 100 | 300
1000 | 1000 | 400
a×n = b×log(n)
var t = {
list: {
"action_buttons[0]": "View",
"action_buttons[1]": "Share",
"action_buttons[2]": "Download",
"columns[0]": "Date of Study",
"columns[1]": "Patient",
"columns[2]": "File name",
"columns[3]": "Reporting <br>Physician",
"columns[4]": "Institution"
}
};
var list = {};
var re = /^(.*?)\[(\d+)\]$/;
var match;
for (var prop in t.list) {
match = prop.match(re);
if (typeof list[match[1]] == "undefined") {
list[match[1]] = [];
}
list[match[1]][match[2]] = t.list[prop];
}
t.list = list;
console.log(t);
{…}
list: {…}
action_buttons: […]
0: "View"
1: "Share"
2: "Download"
columns: […]
0: "Date of Study"
1: "Patient"
2: "File name"
3: "Reporting <br>Physician"
4: "Institution"
<?php
$begin = new DateTime('09:00');
$end = new DateTime('21:00');
$intervals = array(
array(new DateTime('10:00'), new DateTime('10:15')),
array(new DateTime('10:15'), new DateTime('11:45')),
array(new DateTime('12:30'), new DateTime('16:00'))
);
$time = 90;
function checkInterval($begin, $end, $time) {
$intervalDiff = $begin->diff($end);
$intervalMinutes = $intervalDiff->h * 60 + $intervalDiff->i;
if ($intervalMinutes >= $time) {
echo $begin->format('H:i'), ' - ', $end->format('H:i'), "\n";
}
}
$intervalStart = $begin;
foreach ($intervals as $interval) {
checkInterval($intervalStart, $interval[0], $time);
$intervalStart = $interval[1];
}
checkInterval($intervalStart, $end, $time);