Codility--- NumberOfDiscIntersections】的更多相关文章

http://codility.com/demo/take-sample-test/beta2010/ 这题以前做的时候是先排序再二分,现在觉得没有必要.首先圆可以看成线段,把线段的进入作为一个事件,出去作为一个事件.注意根据题意,同样的点,进入要在出去之前.那么O(n)扫一遍就可以得到结果.注意的是A[i]+i可能会超出int. // you can also use includes, for example: #include <algorithm> int solution(const…
question:https://codility.com/programmers/lessons/4 this question is seem like line intersections question. we can use similar method to solve this question. now i prove this solution. for each line, it has two endpoint. we call it left and right. as…
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,…
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…