void problem(int n){ switch(n){ case 123:{ //int a[] = {-2 , 1 , -3 , 4 , -1 , 2 , 1 , -5 , 4}; int a[] = {1 , 2 , 3 , 0 , 2}; int len = sizeof(a) / sizeof(int); vector<int> in(a , a + len); cout << maxProfit2(in) << endl; } break; case 121:{ //int a[] = {-2 , 1 , -3 , 4 , -1 , 2 , 1 , -5 , 4}; int a[] = {1 , 2 , 3 , 0 , 2}; int len = sizeof(a) / sizeof(int); vector<int> in(a , a + len); cout << maxProfit(in) << endl; } break; case 279:{ cout << numSquares(12) << endl; cout << numSquares(13) << endl; } break; case 309:{ //int a[] = {-2 , 1 , -3 , 4 , -1 , 2 , 1 , -5 , 4}; int a[] = {1 , 2 , 3 , 0 , 2}; int len = sizeof(a) / sizeof(int); vector<int> in(a , a + len); cout << maxProfit_cooldown(in) << endl; } break; case 343:{ cout << integerBreak(5) << endl; cout << integerBreak(10) << endl; } break; case 338:{ showVector(countBits(5)); showVector(countBits(15)); } break; case 70:{ cout << climbStairs(5) << endl; cout << climbStairs(15) << endl; cout << climbStairs(8) << endl; } break; case 53:{ //int a[] = {-2 , 1 , -3 , 4 , -1 , 2 , 1 , -5 , 4}; int a[] = {-2 , -1 , -3}; int len = sizeof(a) / sizeof(int); vector<int> in(a , a + len); cout << maxSubArray(in) << endl; } break; default: break; } }
int numSquares(int n, vector<int>& res) { if(n == 0) return 0; if(res[n] != -1) return res[n]; int max_squ = sqrt(n); if(max_squ*max_squ == n) { res[n] = 1; return 1; } int least = INT_MAX; for(int i=1; i<=max_squ; ++i) { int val = 1 + numSquares(n-i*i, res); if(val < least) least = val; } res[n] = least; return least; }
std::vector<pf::Corners> getCornersSamples(size_t index) { cv::Size numSquares(NUM_HOR_SQUARES, NUM_VER_SQUARES); cv::VideoCapture capture(index + 1); if (!capture.isOpened()) { std::cerr << "Can't open the camera" << std::endl; std::exit(-1); } capture.set(CV_CAP_PROP_FPS, FRAMES_PER_SECOND); std::vector<pf::Corners> cornersSamples; bool started = false; clock_t time = 0; while (cornersSamples.size() < NUM_FRAMES) { // Capture frame cv::Mat frame; capture >> frame; // Find chessboard corners auto found = findChessboardCorners(frame); if (found.second && started && clock() - time > DELAY_BETWEEN_FRAMES) { time = clock(); cornersSamples.push_back(found.first); cv::bitwise_not(frame, frame); } // Show image cv::drawChessboardCorners(frame, numSquares, cv::Mat(found.first), found.second); cv::imshow("Calibrate", frame); // Wait for 's' to start if (cv::waitKey(100) == 's') { started = true; } } return cornersSamples; }
int numSquares(int n) { vector<int> res(n+1, -1); return numSquares(n, res); }