# L5-PassingCars ###### tags: `Codility_lessons` ## Question https://app.codility.com/programmers/lessons/5-prefix_sums/passing_cars/ ## Key 1. 本來用一個loop遍尋對為0的車子再用一個loop往後找有幾個1的車子,但這樣會time exceed,且題目沒有要求個別0的車子對應到幾個1的車子,只要求總和就好 2. 所以改用Prefix sum。一個loop以找到的0的車子為基數,對1的車子做累加,且剛好是從小到大遍尋,0的車子一定會配到比自己位置大的1的車子 3. 注意極值,還有讓測資更多元,算法才能更實用 ## Reference ## Solution ```cpp= int solution(vector<int> &A) { // write your code in C++14 (g++ 6.2.0) int A_size = A.size(); long count = 0; int add_base = 0; for(int i = 0; i<A_size; i++) { if(A[i] == 0) { add_base++; } else { count += add_base; } } if(count > 1000000000) return -1; return count; } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up