第一篇博客

这应该是我写的第一篇博客,希望通过这种方式能够记录我自己的学习过程,同时也更督促我自己能够一直坚持学习并将博客写下去。

从今天开始应该会记录在leetcode从零开始学习和刷题的日常,平时也是用自己零碎的时间零敲碎打地学习,所以先给自己定一个小目标,希望自己能够每天至少完成两道题,学明白写明白吧。

因为之前有一些C语言的相关学习基础,所以直接从初级算法这本leetbook开始。一开始的两道题都是有关数组的算法题。第一道题是第26题,删除有序数组中的重复项,也就是删除数组中重复的项,并且最后返回数组中不重复项的项数,题目要求在原地删除数组中的元素,也就是不使用其他存储空间,这也使我一开始的想法不成立,一开始我想直接暴力求解,采用一个新的数组存储我需要保留下来的项,使用两重循环,每当发现有两项相等时,就将存储数组项数的变量减少1。但是这种方法并不符合这题的要求。于是学习了一下题解当中的解法,采用快慢指针的方法,用快指针遍历数组,发现与数组前几项中相同的元素,用慢指针指出当前存储不重复项的位置。实现数组中重复元素的原地删除

int removeDuplicates(int* nums, int numsSize) {
    if (numsSize == 0) {
        return 0;
    }
    int fast = 1, slow = 1;
    while (fast < numsSize) {
        if (nums[fast] != nums[fast - 1]) {
            nums[slow] = nums[fast];
            ++slow;
        }
        ++fast;
    }
    return slow;
}

第二题是第128题买卖股票的最佳时机。在这一题中在一个数组中,每一个元素代表一天股票的价格,你可以在这一天买和卖出股票,也可以在这一天买入,在随后几天中卖出,返回这几天中能够得到的最大收益。这题一时没有想到什么解决办法,所以观看了题解中的方法,对于动态规划的方法并没有能够真的理解到,可能还需要仔细地想一想。第二种方法,遍历数组一遍,只计算上升沿的数值差,再将其累加即可得到这几天购买股票能够得到的最大利润。因为在这题中,相当于买卖没有任何限制,即买即卖,所以如果下一天的股票价值大于前一天的股票价值就卖出,因此按照这样的方法就能够计算出本题中所要求得到的最大利润。动态规划的方法还需要在之后更加深入的研究和思考。

int maxProfit(int* prices, int pricesSize) {
    int ans = 0;
    for (int i = 1; i < pricesSize; ++i) {
        if(prices[i] > prices[i-1]){
            ans += prices[i] - prices[i - 1];
        }
    }
    return ans;
}

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matplotlib是Python中最流行的数据可视化库之一。它可以绘制各种类型的图表,从简单的线图到复杂的三维图表。与其他绘图库相比,Matplotlib具有许多优点,例如易于学习和使用、广泛的文档和社区支持等等。本篇博客将介绍Matplotlib的基础知识和常用技巧。 Matplotlib基础知识: Matplotlib是一个面向对象的绘图库,它具有许多对象和方法。下面是Matplotlib对象的一些基本概念: 1. Figure:画布,它是最外层的容器。 2. Axes:坐标轴,它是Figure中的一个子对象。 3. Axis:X轴或Y轴,它是Axes对象的一部分。 4. Artist:图表中的所有部分,例如标题、标签、线条等等,都是Artist对象的实例。 要使用Matplotlib绘制图表,首先必须创建一个Figure对象,然后在其中添加一个或多个Axes对象。接下来,使用Axes对象的方法来添加Artist对象。 下面是一个简单的代码示例: ```python import matplotlib.pyplot as plt # 创建Figure和Axes对象 fig, ax = plt.subplots() # 添加Artist对象 ax.plot([1, 2, 3, 4], [1, 4, 2, 3]) # 显示图表 plt.show() ``` 在这个例子中,我们创建了一个Figure对象和一个Axes对象,然后在Axes对象中添加了一条线。最后,我们调用show()函数来显示图表。 常用技巧: 1. 设置图表样式: Matplotlib提供了许多方法来设置图表样式,例如设置标题、标签、颜色、线型、线宽等等。可以通过调用Axes对象的方法来实现。例如: ```python # 设置标题 ax.set_title('My First Matplotlib Chart') # 设置X轴标签 ax.set_xlabel('X Label') # 设置Y轴标签 ax.set_ylabel('Y Label') # 设置线条颜色 ax.plot(x, y, color='r') # 设置线条线型 ax.plot(x, y, linestyle='--') # 设置线条线宽 ax.plot(x, y, linewidth=2) ``` 2. 绘制多个子图: Matplotlib可以在一个Figure对象中绘制多个子图。可以使用subplot()函数来创建子图,该函数将返回一个Axes对象,在其中添加Artist对象。例如: ```python # 创建一个2x2的子图 fig, axs = plt.subplots(2, 2) # 在第一个子图中绘制一条线 axs[0, 0].plot(x, y) # 在第二个子图中绘制散点图 axs[0, 1].scatter(x, y) # 在第三个子图中绘制条形图 axs[1, 0].bar(x, y) # 在第四个子图中绘制饼图 axs[1, 1].pie(y) ``` 3. 保存图表: Matplotlib可以将图表保存为PNG、PDF、SVG等格式。可以使用savefig()函数来保存图表,该函数将文件路径作为参数。例如: ```python # 保存图表为PNG格式 plt.savefig('mychart.png') # 保存图表为PDF格式 plt.savefig('mychart.pdf') # 保存图表为SVG格式 plt.savefig('mychart.svg') ``` 总结: Matplotlib是一个强大的数据可视化库,可以绘制各种类型的图表。本篇博客介绍了Matplotlib的基础知识和常用技巧,希望能够帮助初学者更快地上手Matplotlib。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值