分享

初级算法

 精品唯居 2022-10-28 发布于北京

一、删除排序数组中的重复项

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

例如:[1,1,2],输出[1,2]

int removeDuplicates(int* nums, int numsSize){
    int j = 1;
    for(int i = 1; i < numsSize; i ++){
        if(nums[i] == nums[i - 1]){
            continue;
        } else{
            nums[j] = nums[i];
            j++;
        }
    }
    return j;
}

 二、买卖股票的最佳时期

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

例如:[7,1,5,3,6,4],输出:7。(第二天1元买入,第三天5元卖出。第四天3元买入,第五天6元卖出。净赚4+3=7)

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多