zoukankan      html  css  js  c++  java
  • LeetCode 第 202 场周赛

    存在连续三个奇数的数组

     1 class Solution {
     2 public:
     3     bool threeConsecutiveOdds(vector<int>& arr) {
     4         int n = arr.size();
     5         for (int i = 1; i < n - 1; i++) {
     6             if ((arr[i - 1] % 2) && (arr[i] % 2) && (arr[i + 1] % 2)) return true;
     7         }
     8         return false;
     9     }
    10 };
    View Code

    使数组中所有元素相等的最小操作数

     1 class Solution {
     2 public:
     3     int minOperations(int n) {
     4         int ans = 0;
     5         int mid = (n + 1) / 2;
     6         for (int i = 1; i <= n; i++) {
     7             ans = ans + abs((2 * i + 1 ) - (2 * mid + 1));
     8         }
     9         return ans / 2;
    10     }
    11 };
    View Code

    两球之间的磁力

    二分答案,最大化最小值,很经典的题目了

     1 class Solution {
     2 public:
     3     bool check(vector<int>& p, int mid, int m) {
     4         int cnt = 1, prep = p[0], j = 1;
     5         int n = p.size();
     6         while (j < n) {
     7             if ((p[j] - prep) >= mid) {
     8                 cnt++;
     9                 prep = p[j];
    10             }
    11             j++;
    12         }
    13         return cnt >= m;
    14     }
    15     int maxDistance(vector<int>& position, int m) {
    16         sort(position.begin(), position.end());
    17         int l = 0, r = 1e9 + 10, mid, ans = -1;
    18         while (l <= r) {
    19             int mid = (l + r) / 2;
    20             if (check(position, mid, m)) {
    21                 ans = max(ans, mid);
    22                 l = mid + 1;
    23             } else {
    24                 r = mid - 1;
    25             }
    26         }
    27         return ans;
    28     }
    29 };
    View Code

    吃掉 N 个橘子的最少天数

    记忆化搜索,因为数据可能给到2e9,所以用map存储。

     1 class Solution {
     2 public:
     3     map<int,int> mp;
     4     int minDays(int n) {
     5         if (n <= 2) return n;
     6         if(mp.count(n)) return mp[n];
     7         int res1 = minDays(n / 3) + 1 + n % 3;
     8         int res2 = minDays(n / 2) + 1 + n % 2;
     9         return mp[n] = min(res1, res2);
    10     }
    11 };
    View Code
  • 相关阅读:
    JSP内置对象
    Java数据结构
    Java引用传递
    椭圆曲线算法的基本原理及实现
    常见的Java异常
    Java数据结构
    Java数据结构
    重拾JSP
    [洛谷P6185] [NOI online 提高]T1 序列
    [题解][BZOJ1299]巧克力棒
  • 原文地址:https://www.cnblogs.com/pavtlly/p/13881978.html
Copyright © 2011-2022 走看看