Leetcode[274]H指数&[904]水果成篮

最近忙于论文和实习,好久没有刷题了,之前立下的关于triplet loss的flag也莫得了。

某公司压力太大,已离职,希望利用好学生生涯最后一点时间,认认真真找个工作,扎扎实实提高自己技术水平。

其实这两道题都特别简单,均是自己在没有提示的情况下做出来的。

第一道题一个排序再一个遍历就结束了,我从没见过这么简单的medium,是因为我的方法太笨了吗?

bool compare(const int a, const int b) {return b < a;}
class Solution {
public:
    int hIndex(vector<int>& citations) {
        int len = citations.size();
        auto it = citations.begin();
        while (it != citations.end())
            if (*it == 0) it = citations.erase(it);
            else ++it;
        len = citations.size();
        if (len == 0) return 0;
        sort(citations.begin(), citations.end(), compare);
        for (int i = 0; i < len; ++i) {
            if (i+1 > citations[i])
                return i;
            else if (i+1 == len) return i+1;
        }
        return 0;
    }
};

第二道题也没什么复杂的,甚至某种意义上更简单,只需要一次O(n)的遍历就结束了,唯一需要注意的就是开始和结束的条件。

class Solution {
public:
    int totalFruit(vector<int>& tree) {
        int first = tree[0], second = -1;
        int i = 1, len = tree.size(), sameLen = 1, maxLen = 1, res = 1;
        while (i < len) {
            if (tree[i] == first || tree[i] == second) {
                if (tree[i-1] == tree[i]) ++sameLen;
                else sameLen = 1;
                ++maxLen;
                ++i;
            }
            else if (tree[i] != first && second < 0) {
                sameLen = 1;
                second = tree[i];
                ++maxLen;
                ++i;
            }
            else {
                if (res < maxLen) res = maxLen;
                maxLen = sameLen+1;
                sameLen = 1;
                first = tree[i-1];
                second = tree[i];
                ++i;
            }
            if (i == len && res < maxLen) res = maxLen;
        }
        return res;
    }
};

  

asdf

原文地址:https://www.cnblogs.com/left4back/p/10561413.html

时间: 2024-10-08 15:11:12

Leetcode[274]H指数&[904]水果成篮的相关文章

Leetcode 274.H指数

H指数 给定一位研究者论文被引用次数的数组(被引用次数是非负整数).编写一个方法,计算出研究者的 h 指数. h 指数的定义: "一位有 h 指数的学者,代表他(她)的 N 篇论文中至多有 h 篇论文,分别被引用了至少 h 次,其余的 N - h 篇论文每篇被引用次数不多于 h 次." 示例: 输入: citations = [3,0,6,1,5] 输出: 3 解释: 给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 3, 0, 6, 1, 5 次. 由于研究者有 3 篇论

【python-leetcode904-滑动窗口法】水果成篮

问题描述: 在一排树中,第 i 棵树产生 tree[i] 型的水果.你可以从你选择的任何树开始,然后重复执行以下步骤:把这棵树上的水果放进你的篮子里.如果你做不到,就停下来.移动到当前树右侧的下一棵树.如果右边没有树,就停下来.请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直至停止.你有两个篮子,每个篮子可以携带任何数量的水果,但你希望每个篮子只携带一种类型的水果.用这个程序你能收集的水果总量是多少? 示例 1: 输入

Leetcode-904 水果成篮

1 class Solution 2 { 3 public: 4 int totalFruit(vector<int>& tree) 5 { 6 vector<pair<int,int>> dealList; 7 int curType = tree[0]; 8 int curSum = 1; 9 for(int i = 1; i < tree.size(); i ++) 10 { 11 if(tree[i]==curType) 12 curSum ++;

[LeetCode] 274. H-Index H指数

Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute the researcher's h-index. According to the definition of h-index on Wikipedia: "A scientist has index h if h of his/her N papers have a

(Java) LeetCode 274. H-Index —— H指数

Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute the researcher's h-index. According to the definition of h-index on Wikipedia: "A scientist has index h if h of his/her N papers have a

LeetCode:H-Index、H-Index II - H指数

1.题目名称 H-Index(H指数) 2.题目地址 https://leetcode.com/problems/h-index/ 3.题目内容 英文:Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute the researcher's h-index. 中文:给出一个数组记录一个研究者各篇文章的引用数,写一个函数计算这

[LeetCode] 275. H-Index II H指数 II

Follow up for H-Index: What if the citations array is sorted in ascending order? Could you optimize your algorithm? Hint: Expected runtime complexity is in O(log n) and the input is sorted. 274. H-Index H指数 的拓展.输入的数组是有序的,让我们优化算法.提示(现在题目中没有提示了):O(logn

[LeetCode] H-Index II 求H指数之二

Follow up for H-Index: What if the citations array is sorted in ascending order? Could you optimize your algorithm? Hint: Expected runtime complexity is in O(log n) and the input is sorted. 这题是之前那道H-Index 求H指数的拓展,输入数组是有序的,让我们在O(log n)的时间内完成计算,看到这个时间复

[LeetCode] H-Index 求H指数

Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute the researcher's h-index. According to the definition of h-index on Wikipedia: "A scientist has index h if h of his/her N papers have a