leetcode 3
Posted 晴朗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 3相关的知识,希望对你有一定的参考价值。
0(n*n)时间复杂度
注意ASCII的取值范围
只需要确定起始位置即可,暴力
class Solution { public: int lengthOfLongestSubstring(string s) { if(s.size()==0)return 0; int maxlength=0,length=0; int MapStr[500]; for(int i=0;i<s.size();i++) { length=0; memset(MapStr,0,sizeof(MapStr)); for(int j=i;j<s.size();j++) { if(MapStr[s[j]]==0) { MapStr[s[j]]=1; length++; } else break; } if(length>maxlength) maxlength=length; } return maxlength; } };
0(n)
中间加了优化之间吧重复部分跳过相当于遍历两边
1 class Solution { 2 public: 3 int lengthOfLongestSubstring(string s) { 4 if(s.size()==0)return 0; 5 int maxlength=0; 6 int MapStr[300]; 7 int i=0,j=0; 8 int length=s.size(); 9 memset(MapStr,0,sizeof(MapStr)); 10 while(i<length) { 11 if(MapStr[s[i]]) { 12 maxlength=max(i-j,maxlength); 13 while(s[i]!=s[j]) { 14 MapStr[s[j]]=0; 15 j++; 16 } 17 i++;j++; 18 } 19 else { 20 MapStr[s[i]]=1; 21 i++; 22 } 23 } 24 maxlength=max(length-j,maxlength); 25 return maxlength; 26 } 27 };
以上是关于leetcode 3的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段