leetcode 39,leetcode hot 3-4

 2023-10-20 阅读 30 评论 0

摘要:3.無重復字符的最長字串 class Solution { public:int lengthOfLongestSubstring(string s) {unordered_set<char>occ;//哈希集合,記錄每個字符是否出現過//右指針,初始指向左邊界左側int rk=-1,ans=0;//枚舉左指針的位置for(int i=0;i<s.

3.無重復字符的最長字串

class Solution {
public:int lengthOfLongestSubstring(string s) {unordered_set<char>occ;//哈希集合,記錄每個字符是否出現過//右指針,初始指向左邊界左側int rk=-1,ans=0;//枚舉左指針的位置for(int i=0;i<s.size();i++){if(i!=0){//左指針向右移動一格,移除一個字符occ.erase(s[i-1]);}while(rk+1<s.size() && !occ.count(s[rk+1])){occ.insert(s[rk+1]);rk++;}ans=max(ans,rk-i+1);}return ans;}
};

在這里插入圖片描述

在這里插入圖片描述

太難了,因為rk指針一開始是指向左邊界的左邊,所以后面在使用的時候一直忘記rk+1

還有一種暴力法。。。。。。。。

4 .尋找兩個正序數組的中位數

class Solution {
public:double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {int m=nums1.size(),n=nums2.size(),k=0,j=0,i=0;vector<int>sub(m+n,0);while(i<m && j<n){sub[k++]=nums1[i]<nums2[j] ? nums1[i++]:nums2[j++];}while(i<m) sub[k++]=nums1[i++];while(j<n)sub[k++]=nums2[j++];return k%2 ? sub[k/2] : (sub[k/2]+sub[k/2-1]/2.0);}
};

leetcode 39、先歸并,在找中位數,類似于歸并排序,不過沒用用到兩個數組都是有序這個特點

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/151973.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息