1 Star 1 Fork 0

laodasbch/Leetcode-Complete-Guide

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
1202.txt 1.44 KB
一键复制 编辑 原始数据 按行查看 历史
JunB(66哥) 提交于 2020-09-25 13:31 +08:00 . Create 1202.txt
class Solution {
public String smallestStringWithSwaps(String s, List<List<Integer>> pairs) {
StringBuilder str=new StringBuilder();
int nums[]=new int[s.length()];
for(int i=0;i<nums.length;i++){
nums[i]=i;
}
for(List<Integer>pair:pairs){
int v1=pair.get(0);
int v2=pair.get(1);
int r1=find(nums,v1);
int r2=find(nums,v2);
if(r1!=r2){
nums[r1]=r2;
}
}
Map<Integer,Integer>index=new HashMap<>();
Map<Integer,List<Character>>map=new HashMap<>();
for(int i=0;i<s.length();i++){
int r=find(nums,i);
if(!map.containsKey(r)){
index.put(r,0);
map.put(r,new ArrayList<>());
}
map.get(r).add(s.charAt(i));
}
for(Integer root:map.keySet()){
List<Character>list=map.get(root);
Collections.sort(list);
}
for(int i=0;i<s.length();i++){
int r=find(nums,i);
int pos=index.get(r);
index.put(r,pos+1);
str.append(""+map.get(r).get(pos));
}
return str.toString();
}
public int find(int nums[],int x){//union find => find method
if(nums[x]==x)return x;
int root=find(nums,nums[x]);
nums[x]=root;
return root;
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/laodasbch/Leetcode-Complete-Guide.git
git@gitee.com:laodasbch/Leetcode-Complete-Guide.git
laodasbch
Leetcode-Complete-Guide
Leetcode-Complete-Guide
master

搜索帮助