头像

阿梁

合肥工业大学




离线:2天前


最近来访(8)
用户头像
acwing_ydx
用户头像
嘶锅咦
用户头像
Hiraeth
用户头像
349823305
用户头像
木棉觉
用户头像
齐天大仙
用户头像
就是我

活动打卡代码 AcWing 3799. 送糖果

阿梁
1个月前
import java.util.*;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();

        while(T-- != 0) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            int k = 1;
            while(true) {
                if(a < k) {
                    System.out.println("Vladik");
                    break;
                }
                a -= k++;
                if(b < k) {
                    System.out.println("Valera");
                    break;
                }
                b -= k++;
            }

        }
    }
}



活动打卡代码 LeetCode 313. 超级丑数

阿梁
1个月前
class Solution {
    public int nthSuperUglyNumber(int n, int[] primes) {
        //新建数组存放结果
        int[] num = new int[n];
        //结果第一个数必然为1,因为1是最小质因子
        num[0] = 1;
        //建一个小根堆,重写方法
        PriorityQueue<int[]> heap = new PriorityQueue<>(new Comparator<int[]>(){
            @Override
            public int compare(int[] a, int[] b){
                return a[0] <= b[0] ? -1 : 1;
            }
        });
        //初始化小根堆,数组第一个数p里面存放的是数组的数乘以目前下标对应的数,第二个数存的是下标
        for (int p: primes) {
            heap.offer(new int[]{p, 0});
        }
        //从下标1开始遍历
        for(int i = 1; i < n;){
            //把最小值弹出
            int p[] = heap.poll();
            //如果最小数与前一个数不同则保存到数组的下一个位置
            if(p[0] != num[i-1]) num[i++] = p[0];
            //反求回质数
            int q = p[0] / num[p[1]];
            //把新的质数加入堆中
            heap.offer(new int[]{q * num[p[1] + 1], p[1] + 1});
        }
        return num[n-1];
    }
}



阿梁
2个月前
class Solution {
    public int minPairSum(int[] nums) {
        Arrays.sort(nums);
        int res = 0;
        for(int i = 0, j = nums.length-1; i < j; i++, j--)
            res = Math.max(res, nums[i] + nums[j]);
        return res;

    }
}



阿梁
2个月前

Java代码——二分做法

class Solution {
    public int maxFrequency(int[] nums, int k) {
        Arrays.sort(nums);
        int n=nums.length;
        long[] s=new long[n+1];

        //前缀和
        for(int i=1;i<=n;i++) s[i]=s[i-1]+nums[i-1];

        int res=1;
        for(int i=1;i<=n;i++){
            int l=1,r=i;
            while(l<r){
                int mid=l+r>>1;
                if(nums[i-1]*1l*(i-mid+1)-(s[i]-s[mid-1])<=k) r=mid;
                else l=mid+1;
            }
            res=Math.max(res,i-r+1);
        }
        return res;
    }
}



阿梁
2个月前

Java代码——二分做法

class Solution {
    public int maxFrequency(int[] nums, int k) {
        Arrays.sort(nums);
        int n=nums.length;
        long[] s=new long[n+1];

        //前缀和
        for(int i=1;i<=n;i++) s[i]=s[i-1]+nums[i-1];

        int res=1;
        for(int i=1;i<=n;i++){
            int l=1,r=i;
            while(l<r){
                int mid=l+r>>1;
                if(nums[i-1]*1l*(i-mid+1)-(s[i]-s[mid-1])<=k) r=mid;
                else l=mid+1;
            }
            res=Math.max(res,i-r+1);
        }
        return res;
    }
}



阿梁
6个月前
#include<iostream>
#include<cstring>
#include<algorithm>

using namespace std;

const int N=30;

int n,m;
int path[N];

void dfs(int u,int start){
    if(u>m){
        for(int i=1;i<=m;i++) printf("%d ",path[i]);
        puts("");
    }else{
        for(int i=start;i<=n;i++){
            path[u]=i;
            dfs(u+1,i+1);
            path[u]=0;
        }
    }
}

int main(){
    scanf("%d%d",&n,&m);

    dfs(1,1);

    return 0;
}


活动打卡代码 LeetCode 90. 子集 II

阿梁
6个月前
class Solution {
public:
    unordered_map<int,int> hash;
    vector<vector<int>> res;
    vector<int> path;
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        for(auto x:nums) hash[x]++;
        dfs(-10);
        return res;
    }
    void dfs(int u){
        if(u>10) res.push_back(path);
        else{
            for(int i=0;i<hash[u]+1;i++){
                dfs(u+1);
                path.push_back(u);
            }
            for(int i=0;i<hash[u]+1;i++){
                path.pop_back();
            }
        }
    }
};



阿梁
6个月前
class Solution {
public:
    bool searchArray(vector<vector<int>> array, int target) {
        if(array.empty()||array[0].empty()) return false;


        for(int i=0,j=array[0].size()-1;i<array.size()&&j>=0;){
            if(array[i][j]<target) i++;
            else if(array[i][j]>target) j--;
            else return true;
        }
        return false;
    }
};


活动打卡代码 LeetCode 74. 搜索二维矩阵

阿梁
6个月前
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        if(matrix.empty()||matrix[0].empty()) return false;
        int n=matrix.size(),m=matrix[0].size();
        int l=0,r=n*m-1;
        while(l<r){
            int mid=l+r>>1;
            if(matrix[mid/m][mid%m]>=target) r=mid;
            else l=mid+1;
        }
        return matrix[r/m][r%m]==target;
    }
};



阿梁
6个月前
class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t res=0;
        for(int i=0;i<32;i++) res=(res<<1)+(n>>i&1);
        return res;
    }
};