zoukankan      html  css  js  c++  java
  • 740. Delete and Earn

    #week14

    Given an array nums of integers, you can perform operations on the array.

    In each operation, you pick any nums[i] and delete it to earn nums[i] points. After, you must delete every element equal to nums[i] - 1 or nums[i] + 1.

    You start with 0 points. Return the maximum number of points you can earn by applying such operations.

    Example 1:

    Input: nums = [3, 4, 2]
    Output: 6
    Explanation: 
    Delete 4 to earn 4 points, consequently 3 is also deleted.
    Then, delete 2 to earn 2 points. 6 total points are earned.
    

    Example 2:

    Input: nums = [2, 2, 3, 3, 3, 4]
    Output: 9
    Explanation: 
    Delete 3 to earn 3 points, deleting both 2's and the 4.
    Then, delete 3 again to earn 3 points, and 3 again to earn 3 points.
    9 total points are earned.
    

    Note:

    • The length of nums is at most 20000.
    • Each element nums[i] is an integer in the range [1, 10000].

    题解:

     1 class Solution {
     2 public:
     3     int deleteAndEarn(vector<int>& nums) {
     4         int n = 10001;
     5         vector<int> values(n, 0);
     6         for (int num : nums)
     7             values[num] += num;
     8 
     9         int take = 0, skip = 0;
    10         for (int i = 0; i < n; i++) {
    11             int takei = skip + values[i];
    12             int skipi = max(skip, take);
    13             take = takei;
    14             skip = skipi;
    15         }
    16         return max(take, skip);
    17     }
    18 };
  • 相关阅读:
    el-upload怎么拿到上传的图片的base64格式
    浮动到表格中某一行,根据改行信息高亮某区域文字,并设置对应滚动高度,使高亮文字出现在当前视野
    IE浏览器报Promise未定义的错误
    el-input为数字时验证问题
    Tomcat
    redis
    JSON
    JQuery基础
    JQuery高级
    Git学习(二)
  • 原文地址:https://www.cnblogs.com/iamxiaoyubei/p/8278273.html
Copyright © 2011-2022 走看看