E-Dreamer

脚踏实地,仰望星空

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PS: Hashmap 的一边遍历边存储,可解决例如两数之和、 无重复最长子串问题等,代码为cpp格式。 

以无重复最长子串为例。

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
    	unordered_map<char,int> hashmap;
    	int left = 0,max_len=0;
    	for (int i=0; i < s.size(); i++){
    		if (hashmap.find(s[i]) != hashmap.end()){
    			left = max(left, hashmap[s[i]] +1);  // 更新左边界
    		}
    		max_len = max(max_len,i-left+1) 
    		hashmap[s[i]] = i;  // 遍历的同时hashmap 加入字符对应位置
    	}
    	return max_len;

    }};

  

posted on 2020-01-15 10:31  E-Dreamer  阅读(518)  评论(0编辑  收藏  举报