【每日两题集合】Easy难度的6道经典题目(C++)

目录

268、缺失数字

 387、字符串中第一个唯一字符

350、两个数组的交集II

21、合并两个有序链表

121、买卖股票的最佳时机

118、杨辉三角


268、缺失数字

给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。

示例 1:

输入: [3,0,1]
输出: 2

示例 2:

输入: [9,6,4,2,3,5,7,0,1]
输出: 8
class Solution {
public:
    int missingNumber(vector& nums) {
        int res = 0;
        for(int i=0; i

 387、字符串中第一个唯一字符

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1

案例:

s = "leetcode" 返回 0.

s = "loveleetcode", 返回 2.

注意事项:您可以假定该字符串只包含小写字母。

class Solution {
public:
    int firstUniqChar(string s) {
        map mymap;
        for(int i=0; i

350、两个数组的交集II

给定两个数组,编写一个函数来计算它们的交集。

示例 1:

输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]

示例 2:

输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
class Solution {
public:
    vector intersect(vector& nums1, vector& nums2) {
        vector res;
        sort(nums1.begin(),nums1.end());
        sort(nums2.begin(),nums2.end());
        int i=0, j=0;
        while(i

 21、合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        if(l1==NULL)    return l2;
        if(l2==NULL)    return l1;
        if(l1->val < l2->val) {
            l1 -> next = mergeTwoLists(l1->next, l2);
            return l1;
        } else {
            l2 -> next = mergeTwoLists(l1, l2->next);
            return l2;
        }
    }
};

121、买卖股票的最佳时机

题目描述:

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。

注意你不能在买入股票前卖出股票。

示例 1:

输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
     注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。

示例 2:

输入: [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
class Solution {
public:
    int maxProfit(vector& prices) {
        if(prices.empty())  return 0;
        int buy = prices[0], res = 0;
        for(int i=1; i

 118、杨辉三角

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

                        【每日两题集合】Easy难度的6道经典题目(C++)_第1张图片                        【每日两题集合】Easy难度的6道经典题目(C++)_第2张图片

class Solution {
public:
    vector> generate(int numRows) {
        vector> res(numRows);
        if(numRows==0)  return res;
        for(int i=0; i

 

你可能感兴趣的:(Leetcode)