wxler
wxler
## 355. 设计推特,时间复杂度O(n*k) 这个思路貌似更容易理解,代码如下: ```java class Twitter { class Msg{ int tweetId,incId;//incId为全局唯一的自增id public Msg(int t,int i){ tweetId=t; incId=i; } } //key:用户id,val:该用户关注的人 private HashMap followMap; //key:用户id,val:该用户发送的tweet private HashMap tweetMap; private int...
利用东哥的差分数组,解决力扣:[1094. 拼车](https://leetcode.cn/problems/car-pooling/),原理一样,代码简单优化了下: ```java class Solution { public boolean carPooling(int[][] trips, int capacity) { int[] diff=new int[1000+1]; int maxLen=1; for(int[] trip:trips){ int i=trip[1],j=trip[2],val=trip[0]; maxLen=Math.max(maxLen,j);//maxLen记录最大的公里数 updateDiff(diff,i,j,val); } return convertDiff(diff,maxLen,capacity); } //更新差分数组,公里数为[i,j-1]的增加val public...
关于全排列去重,个人有一个不用排序的解决方案,这里直接使用力扣的签名。 力扣题目地址:[https://leetcode.cn/problems/permutations-ii/](https://leetcode.cn/problems/permutations-ii/) 代码: ```java class Solution { List result=new LinkedList(); public List permuteUnique(int[] nums) { process(nums,new LinkedList(),new boolean[nums.length]); return result; } public void process(int[] nums, LinkedList track,boolean[] used){ if(track.size()==nums.length){ result.add(new...
我是用二分查找搜索右边界然后减了1,原理和东哥讲的一样,代码如下: ```java import java.util.Random; class Solution { int[] preSum; int n; public Solution(int[] w) { this.n=w.length; this.preSum=new int[n+1]; for(int i=0;i