[codility]Falling-discs】的更多相关文章

1.题目: A game for one player is played on a board consisting of N consecutive squares, numbered from 0 to N − 1. There is a number written on each square. A non-empty zero-indexed array A of N integers contains the numbers written on the squares. More…
How to solve this HARD issue 1. Problem: A non-empty zero-indexed array A consisting of N integers is given. A peak is an array element which is larger than its neighbours. More precisely, it is an index P such that 0 < P < N − 1 and A[P − 1] < A…
首先上题目: A DNA sequence can be represented as a string consisting of the letters A, C, G and T, which correspond to the types of successive nucleotides in the sequence. Each nucleotide has an impact factor, which is an integer. Nucleotides of types A,…
Description Each year, fall in the North Central region is accompanied by the brilliant colors of the leaves on the trees, followed quickly by the falling leaves accumulating under the trees. If the same thing happened to binary trees, how large woul…
https://codility.com/demo/take-sample-test/peaks http://blog.csdn.net/caopengcs/article/details/17491791 其实可以做到O(n) #include <iostream> #include <sstream> using namespace std; int solution(vector<int> &A) { int n = A.size(); int prev…
https://codility.com/programmers/challenges/fluorum2014 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1273 http://blog.csdn.net/caopengcs/article/details/36872627 http://www.quora.com/How-do-I-determine-the-order-of-visiting-all-leave…
https://codility.com/programmers/challenges/magnesium2014 图形上的DP,先按照路径长度排序,然后依次遍历,状态是使用到当前路径为止的情况:每个节点记录以该节点结束的最长路径,这样加入新的路径时去更新.注意路径是双向的~ #include <vector> #include <algorithm> using namespace std; struct Road { int start; int end; int val; }…
https://codility.com/demo/take-sample-test/max_double_slice_sum 两个最大子段和相拼接,从前和从后都扫一遍.注意其中一段可以为0.还有最后和最前面一个不可能取到~ #include <vector> using namespace std; int solution(vector<int> &A) { vector<int> maxEnd; maxEnd.resize(A.size()); maxEn…
https://codility.com/demo/take-sample-test/fish 一开始习惯性使用单调栈,后来发现一个普通栈就可以了. #include <stack> using namespace std; int solution(vector<int> &A, vector<int> &B) { int size = A.size(); int deadNum = 0; stack<int> stk; // downst…
https://codility.com/programmers/challenges/upsilon2012 求笛卡尔树的高度,可以用单调栈来做. 维持一个单调递减的栈,每次进栈的时候记录下它之后有多少元素,就是以它为根的子树的高度.出栈的时候再更新一次供新进栈者使用. int solution(vector<int> &A) { A.push_back(1000000001); // an element larger than any one in A int size = A.…