日志统计,两数之和

Posted 猪八戒1.0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日志统计,两数之和相关的知识,希望对你有一定的参考价值。

ts,td,下面是按照ts时间排序,基础上再对td排序,while中的>=d表示时间大于要求不合格 

import java.util.Arrays;
import java.util.Scanner;
 
public class Main 
    public static void main(String[] args) 
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int d = scanner.nextInt();
        int k = scanner.nextInt();
        int N = 100005;
 
        Cmp cmp[] = new Cmp[n];
        for (int i = 0; i < n; i++) 
            cmp[i] = new Cmp(scanner.nextInt(), scanner.nextInt());
        
        Arrays.sort(cmp);
 
        int count[] = new int[N];

        int flag[] = new int[N];

 
        for (int i = 0, j = 0; i < n; i++) 
            count[cmp[i].id]++;
            while (cmp[i].ts - cmp[j].ts >= d) 
                count[cmp[j].id]--;
                j++;
            
            if (count[cmp[i].id] >= k) 
                flag[cmp[i].id] = 1;
            
        
 
        for (int i = 0; i < N; i++) 
            if(flag[i]==1)
                System.out.println(i);
            
        
    

 
class Cmp implements Comparable<Cmp> 
 
    int ts, id;
 
    Cmp(int a, int b) 
        ts = a;
        id = b;
    
 
    @Override
    public int compareTo(Cmp o) 
        return this.ts - o.ts;
    

public class Solution 
    
    public int[] twoSum(int[] numbers, int target) 
        HashMap<Integer,Integer> map=new HashMap<>();
        for(int i=0;i<numbers.length;i++)
             
            if(map.get(numbers[i])!=null)
               
                int [] result=map.get(numbers[i]),i;
                return result;
            
            //不能放在上面的if之前
            map.put(target-numbers[i],i);
        
        //如果不存在
        int[] result=;
        return result;
    

以上是关于日志统计,两数之和的主要内容,如果未能解决你的问题,请参考以下文章

454哈希表-四数相加

Leetcode习题解统计

代码随想录算法训练营第六天 | 242.有效的字母异位词349. 两个数组的交集202. 快乐数1. 两数之和

代码随想录算法训练营第六天 | 242.有效的字母异位词349. 两个数组的交集202. 快乐数1. 两数之和

已知两数之和,求两数乘积最大

d1,一,写一个脚本,统计日志每一分钟的bps之和