我是靠谱客的博主 凶狠发夹,最近开发中收集的这篇文章主要介绍我的leetcode刷题之旅~day011.两数之和2.两数相加3.无重复字符的最长子串,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

开始leetcode的第一天,以前都是刷的都是hdu和poj还有pat的题目,突然改做leetcode真的有点不习惯,今天做的题目不是很多呢,慢慢来叭,加油叭~

1.两数之和

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int i,j;
        for(i=0;i<nums.size()-1;i++){
            for(j=i+1;j<nums.size();j++){
                if(nums[i]+nums[j]==target){
                    return {i,j};
                }
            }
        }
        return {i,j};
    }
};

2.两数相加

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode* result = new ListNode(0);
        ListNode* cur = result;
        int carry = 0;
        int sum = 0;
        while(l1!=nullptr||l2!=nullptr){
            sum = carry;
            if(l1!=nullptr){
                sum += l1->val;
                l1 = l1->next;
            }
            if(l2!=nullptr){
                sum += l2->val;
                l2 = l2->next;
            }
            carry = sum/10;
            cur->next = new ListNode(sum%10);
            cur = cur->next;
        }
        if(carry!=0){
            cur->next = new ListNode(carry);
        }
        return result->next;
    }
};

3.无重复字符的最长子串

这个用hashmap做的效率是最好的

class Solution {
public:
    int hashmap[130];
    int lengthOfLongestSubstring(string s) {
        int max=0;
        int n = s.size();
        for(int i=0,j=0;j<n;j++){
            hashmap[s[j]]++;
            while(hashmap[s[j]]>1){
                hashmap[s[i]]--;
                i++;
            }
            if(j-i+1>max){
                max = j-i+1;
            }
        }
        return max;
    }
};

最后

以上就是凶狠发夹为你收集整理的我的leetcode刷题之旅~day011.两数之和2.两数相加3.无重复字符的最长子串的全部内容,希望文章能够帮你解决我的leetcode刷题之旅~day011.两数之和2.两数相加3.无重复字符的最长子串所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部