首页 > 其他分享 >LeetCode刷题记录——day1

LeetCode刷题记录——day1

时间:2024-03-18 20:35:28浏览次数:14  
标签:遍历 return temp int citiations day1 citations LeetCode 刷题

  • https://leetcode.cn/problems/h-index/description/?envType=study-plan-v2&envId=top-interview-150
    注:题目有点难理解,多读几遍
    可以这样考虑,建立另一个临时数组temp,当第i篇文章被引用citiations[i]次时,令j<=citiations[i]temp[j]均加一,也就是现在对于任意j至少有temp[j]篇论文引用次数大于等于j。因为h是最大值,那么遍历temp最后一个满足temp[j]>=jj就是所求。
    当然,以上的时间复杂度和空间复杂度都比较大,另一种好的方法是先排序后遍历。
    先将数组citiations进行排序,如何从大的一端向小的一端遍历,那么令h一开始为0,每当遍历到一个citiations[i]时,就说明多了一个满足条件的论文,h也就可以加一,直到"h大于citiations[i]"时,也就意味着不在存在满足条件的论文了,遍历也就结束了。
    实现代码:
class Solution {
public:
    int hIndex(vector<int>& citations) {
        int temp[5001]={0};
        int h=0;
        for(int i=0;i<citations.size();i++){
           for(int j=1;j<=citations[i];j++){
                temp[j]++;
           }
        }
        for(int i=1;i<5000;i++){
            if(temp[i]>=i){
                h=i;
            }
        }
        return h;
    }
    
};
class Solution {
public:
    int hIndex(vector<int>& citations) {
        sort(citations.begin(), citations.end());
        int h = 0, i = citations.size() - 1;
        while (i >= 0 && citations[i] > h) {
            h++;
            i--;
        }
        return h;
    }
};

本文由博客一文多发平台 OpenWrite 发布!

标签:遍历,return,temp,int,citiations,day1,citations,LeetCode,刷题
From: https://www.cnblogs.com/humanplug/p/18081333

相关文章

  • LeetCode2024年3月18日每日一题(303. 区域和检索 - 数组不可变)
    303.区域和检索-数组不可变一维前缀和定义构建前缀和数组区间求和示例适用场景题目代码解释成员变量构造函数`sumRange`方法注释版代码一维前缀和是处理数组区间求和问题的一种非常有效的方法。它通过预处理输入数组,使得任何区间的和都可以在常数时间内被计算......
  • 刷题日记——干碎那个BFS!(含国科大机试2021)
    例题小引——迷宫问题问题描述:迷宫由n行m列的单元格组成(n,m都小于等于50),每个单元格要么是空地,要么是障碍物。现请你找到一条从起点到终点的最短路径长度。分析——(迷宫问题BFS解法)使用BFS算法,进行广度优先遍历,总体思路是访问一个结点,就把相邻的结点入队,然后下一个访......
  • java数据结构与算法刷题-----LeetCode45. 跳跃游戏 II
    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846文章目录解题思路:时间复杂度O(n......
  • java数据结构与算法刷题-----LeetCode55. 跳跃游戏
    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846文章目录解题思路:时间复杂度O(n......
  • leetcode代码记录(二分查找
    目录1.题目:2.我的代码:小结:1.题目:给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且......
  • 【LeetCode 310】最小高度树
    题目描述原题链接:LeetCode.310最小高度树解题思路最小高度树的叶子节点肯定是初始只有一条边的节点;广度优先遍历,逐批将当前叶子节点移除,再将移除后新的叶子节点入队;所有节点全部入队时,当前队列中剩余的最后一批"叶子节点"就是答案;坦白说这题的严格思路证明没想过,第......
  • [Java·算法·中等] LeetCode21. 合并两个有序链表
    人不走空                                          ......
  • 【LeetCode 2684】矩阵中移动的最大次数
    题目描述原题链接:2684矩阵中移动的最大次数解题思路每次只能向右侧的下一列紧挨着的三行严格大的格子移动;能移动到i列代表能移动i次,这取决于i-1列可到达的矩阵位置的状态,即可以整列递推相邻列是否可移动到达;两个方向递推的思路:三个(col+1)位置的状态可以逆推出一个(c......
  • 代码随想录算法训练营第十天|LeetCode 20.有效的括号、1047.删除字符串中的所有相邻重
    20.有效的括号题目链接:https://leetcode.cn/problems/valid-parentheses/description/解题思路:题目转化:三种类型的括号,需要做匹配匹配规则是:左右括号的类型要匹配、数量要一致,而且要按照顺序匹配例子是:“()”、“(){}[]”、“(([]))”条件转化:按照顺序匹配:......
  • java学习day1
    ideaJava快捷键psvm生成一个main方法sout输出注释//单行注释/**/多行注释/***/JavaDoc文档注释关键字![3113a776e87bce62993b5ccd4a02801](C:\Users\lenovo\Documents\WeChatFiles\wxid_ulswcuy83w1m22\FileStorage\Temp\3113a776e87bce62993b5ccd4a02801.png)......