选择题 * 30有线代和概率论什么的,大一的我直接游龙,现在的我。。。。。。求大佬路过给点建议 and 求赞~编程题 * 2T1. 给定长度为n的数组a,ai表示第i只袜子颜色的编号问:只有不同颜色袜子能配对,最后剩几只袜子不能配对?T2. 给定长度分别为n和m的数组a, bai表示第i个商品种类编号bj表示第j种商品最少需要的数量问:最短子区间满足对于每一种商品的数量都满足要求的区间长度思路:T1. 贪心显然,只有一种袜子特别多的时候,才会剩下大量不能配队的袜子然后考虑当所有袜子都“比较少”的情况,显然可以“互相配对”最后考虑是否剩一个T2. 滑窗先枚举R作为右边界定义remains = sum(b[1..j]) (从1开始下标,卡了我一下)对于第R个商品,当且仅当curr[a[R]] < b[a[R]] 即现有的这种商品数量不足时remains--判断跑完while后是否满足要求,即remains == 0否则输出-1然后开始滑动窗口,先缩L,当且仅当curr[a[L]] >= b[a[L]] + 1即这种商品的数量有富余时curr[a[L]] --L++然后统计答案,输出最小值即可