time-complexity - 包含所有字符的最小窗口的时间复杂度
问题描述
如果我的字符串长度为 N。我的解决方案的时间复杂度是多少?会是 O(N) 吗?我们在计算时间复杂度时是否考虑了加星标的部分?
for(int k=0;k<str.length();k++){
if(!map.containsKey(str.charAt(k))) map.put(str.charAt(k),0);
}
String ans=str;
int i=0;int j=0;
int count=map.size();
while(j<str.length()){
char ch=str.charAt(j);
if(map.get(ch)==0) count--;
int value=map.get(ch);
map.replace(ch,++value);
if(count!=0) j++;
else if(count==0){
***while(count==0){
char chi=str.charAt(i);
value=map.get(chi);
map.replace(chi,--value);
if(map.get(chi)==0) count++;
i++;
}***
if(ans.length()>(str.substring(i-1,j+1).length())){
ans=str.substring(i-1,j+1);
}
j++;
}
}
return ans;
解决方案
推荐阅读
- java - 从 android studio API 28 连接到解析服务器的 i/o 失败
- javascript - 如何在 Ant Design (Antd)、React js 中获取 Dropdown 组件的值
- javascript - 如何使用 mongoose、nodeJs ( Express ) 在数据库中插入具有相同字段名称的多个字段数据
- android - 无法获取 kotlin-dsl 插件 3.6
- python - 如何在 python 脚本中使用 shell 变量
- javascript - 如何让 getBBox 忽略剪裁的 svg 元素
- c# - 在 C# 中重构异步套接字编程
- wpf - 尝试在文本块 WPF 中换行和缩放文本
- javascript - 无法重新加载 eslint 配置文件
- typescript - 我可以在 TypeScript 严格的 null 检查模式下禁用区分 null 和 undefined 吗?