问题描述
两者的代码有何不同?,当运行 code1 给出 TLE 错误但第二个没有给出 .均基于 0(n) 的解决方案
code1
public static String countSort(String arr)
{
int freq[] = new int[26];
char a[] = new char[arr.length()];
for(int i=0;i<arr.length();i++)
{
freq[arr.charat(i)-'a']++;
}
for(int i=1;i<26;i++)
freq[i]+=freq[i-1];
String ans="";
for(int i=arr.length()-1;i>=0;i--)
{
a[freq[arr.charat(i)-'a']-1] = arr.charat(i);
freq[arr.charat(i)-'a']=freq[arr.charat(i)-'a']-1;
}
for(int i=0;i<a.length;i++)
{
ans+=a[i];
}
return ans;
}
代码 2
public static String countSort(String arr)
{
int freq[] = new int[26];
char a[] = new char[arr.length()];
for(int i=0;i<arr.length();i++)
{
freq[arr.charat(i)-'a']++;
}
for(int i=1;i<26;i++)
freq[i]+=freq[i-1];
String ans="";
for(int i=arr.length()-1;i>=0;i--)
{
a[freq[arr.charat(i)-'a']-1] = arr.charat(i);
freq[arr.charat(i)-'a']=freq[arr.charat(i)-'a']-1;
}
return new String(a);
}
预期时间复杂度:O(N)。 预期辅助空间:O(N)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)