【003】Longest Substring Without Repeating Characters
题目大意:求最长的无重复字符的子串
#include <iostream>
#include <algorithm>
using namespace std;
class Solution{
public:
int lengthOfLongestSubstring(string s){
int n = s.length();
int i = 0, j = 0;
int maxLen = 0;
bool exist[256] = { false };
while (j < n) {
if (exist[s[j]]) {
maxLen = max(maxLen, j - i);
while (s[i] != s[j]) {
exist[s[i]] = false;
i++;
}
i++;
j++;
}
else {
exist[s[j]] = true;
j++;
}
}
maxLen = max(maxLen, n - i);
return maxLen;
}
};
int main(){
string str = "abcabcbb";
Solution s;
printf("%d", s.lengthOfLongestSubstring(str));
system("pause");
return 0;
}
【004 Median of Two Sorted Arrays】
题目大意:找两个已排序数组的中位数
#include <iostream>
#include <vector>
using namespace std;
class Solution{
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2){
vector<int>temp;
int i = 0;
int j = 0;
double res;
while (i < nums1.size() && j < nums2.size())
{
if (nums1[i] < nums2[j])
{
temp.push_back(nums1[i]);
i++;
}
else
{
temp.push_back(nums2[j]);
j++;
}
}
while (i < nums1.size())
{
temp.push_back(nums1[i]);
i++;
}
while (j<nums2.size())
{
temp.push_back(nums2[j]);
j++;
}
if (temp.size()%2==0)
{
res = (temp[temp.size() / 2 - 1] + temp[temp.size() / 2]) / 2.0;
}
else
{
res = temp[temp.size() / 2];
}
return res;
}
};
int main(){
vector<int> nums1;
nums1.push_back(1);
nums1.push_back(3);
vector<int> nums2;
nums2.push_back(2);
Solution s;
printf("%0.2f", s.findMedianSortedArrays(nums1, nums2));
system("pause");
return 0;
}