【寒假总结】——刷题+锻炼身体+规律作息(我以后再也不带书回去看了)

博主在寒假期间完成了230道力扣算法题,主要比例为Easy:Mid:Hard=3:3:1,显著提升了算法能力,现在周赛通常能AC前三题。此外,还分享了一道关于统计数组中满足特定条件的下标对数目的难题。博客强调了持续学习和刷题对于技能提升的重要性。
摘要由CSDN通过智能技术生成

这里是【代码之狐】的寒假总结
——欸?我寒假呢?
——还有正在享受寒假的同学们抓紧,你们的时间不多了

自1月16左右放假到现在开学,差不多30天吧(😢太短了)
我完成的小目标:

  • ⭐️力扣刷题:完成230道题左右,其中Easy:Mid:Hard约为3:3:1
  • ⭐️锻炼身体:主要是长肉(太廋了,不健康)+每天有一定量的运动
  • ⭐️规律作息:从凌晨到了12点左右,争取12点之前
  • 😢专业书:背几大本书回去的我是…

⭐️刷题总结:

一、刷题数

一共刷了230题(不是水题)、每天基本上8道题左右(其实是10题的,刚回去几天有点懒)
在这里插入图片描述
刷题记录达到了69219个字符(其实是包含了代码和题目描述),不过还是很欣慰…
在这里插入图片描述

二、周赛

算法能力有很大提高,主要是见多识广,现在基本上周赛AC前三题,小概率全AC,最好名次240多(主要是不会优化)
之前没怎么打过,
基本上算是从零开始火速上升了
在这里插入图片描述
基本上最后一题卡住,临近结束的时候找到了优化方法。

三、贴一道今天的周赛——【每日一题】

6015. 统计可以被 K 整除的下标对数目-Hard-第 281 场周赛

给你一个下标从 0 开始、长度为 n 的整数数组 nums 和一个整数 k ,返回满足下述条件的下标对 (i, j) 的数目:

  • 0 <= i < j <= n - 1
  • nums[i] * nums[j] 能被 k 整除。
class Solution {
    public long coutPairs(int[] nums, int k) {
        int n=nums.length;
        long[] m=new long[n];
        Map<Integer,Integer> count=new HashMap<>();
        
        for(int i=0;i<n;i++){
            nums[i]%=k;
            count.put(nums[i],count.getOrDefault(nums[i],0)+1);
            m[i]=((long)k*nums[i])/gcd(k,nums[i]);
        }
        
        Map<Integer,Integer> dp=new HashMap<>();
        
        long ans=0;
        for(int i=0;i<n;i++){
            if(nums[i]==0){
                ans+=(n-1)*2-count.get(0)+1;
                continue;
            }
            
            long mid_c=(long)m[i]/nums[i];
            int f=1;
            long mid=mid_c;
            
            if(dp.get((int)mid_c)!=null){
                ans+=dp.get((int)mid_c);
                continue;
            }
            long s=0;
            while(mid<k){
                int g=0;
                
                g=count.getOrDefault((int)mid,0);
                
                if(mid==nums[i]){
                    g=g-1;
                }
                s+=g;
                mid=mid_c*(++f);
            }
            dp.put((int)mid_c,(int)s);
            ans+=s;
        }
        return ans/2;
        
    }
    int gcd(int a,int b){
        return b==0?a:gcd(b,a%b);
    }
}

结尾

题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems

⭐️关注作者,带你刷题,从简单的算法题了解最常用的算法技能(寒假每日一题)
⭐️关注作者刷题——简单到进阶,让你不知不觉成为无情的刷题机器,有问题请私信

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码之狐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值