数据结构基础训练

189 阅读2分钟
  • 第一次注册了LeetCode,通过他的学习界面发现了有关于很多课程和代码学习方法,其中有主要学习了数据结构的基础训练,数组和字符串课程。虽然有过之前的学习,但是我发现其实我的基础非常差,,能够稍微记得一些的就是数组部分。

  • 数组与字符串这个部分对我来说可能是熟悉又陌生,之前学习的部分可能比较浅显,所以在看这个部分的时候觉得难度很大,数组和二维数组,主要就是要熟悉数组的位置,怎么调换和插入,字符串操作对象往往是字符串整体或者是他的子串,就像英文一句话操作的是单词而不是一个一个的字母。最后介绍的双指针,主要是为了方便我们位置的使用,这个指针一开始的难度稍微较小,用起来也没有非常的复杂。

  • 比如LeetCode上面这个查找数组中元素和插入位置的题目,其实刚开始就是一头雾水,因为很多东西基本都已经忘干净了,只能通过看下面的评论和题解来慢慢回忆慢慢写

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
    int left=0,right=nums.size()-1;
    while(left<=right)
    {
        int mid=(left+right)/2;
        if(nums[mid]==target)
        return mid;
        else if(nums[mid]<target)
        left=mid+1;
        else
        right=mid-1;
    }
    return left;
    }
};

图.jpg

  • 而在后面的的二维数组和字符串上,我熟悉的程度更差,所以基本只能慢慢看慢慢写,并且很容易出bug,虽然这些可能并不算很难的题目,但是也暴露出了我的编程基础其实是很差的,拿起题目就是一头雾水没有思路,因此我觉得要经常性的做一些必要的训练,提高自己的手感,不能一拖再拖,要努力提高自己