资讯详情

随写的一些近期感悟(自用)

扣也刷了一段时间,也想先写一篇文章来整理自己最近的收获。 其实在做的时候,大部分(80%左右?)我们仍然可以看到一种可以通过的方法,但我们经常被困在如何写这方面,比如今天(2022.3.20)每天看一个问题,不难想到用广搜很容易得到要求的结果,但是如何用代码实现广搜真的让我很困惑。我自己的实现只是一个低效的代码,里面充满了大量冗杂的代码,真的是心有余,力不足。 由于我是用c 所以这篇文章只会出现c 相关内容 首先是关于vector在力扣中提供的容器数组使用vector盛开使用vector当我们不可避免地操作数据时,这里不详细说明简单的阅读大小。这里只提一下c 11中加入的emplace,使用emplace和emplace_back可以加快数据的插入效率(具体自查),可以代替原先使用的push_back和insert 例如

int t; vector<int> a; a.emplace_back(t);///现在使用效率更高 a.push_back(t);///原用效率低 

二维或高维vector,就我个人而言,我认为我可以先把它理解为一维vector,而这vector存储在中间的每个数据都是vector类型

vector<vector<int>> a;///这是二维的vector储存类型int类变量 ///每一个a,a[0],a[1],a[2]我们都可以对它进行原始处理vector操作 a.resize(5)resize指定大小,这里指定了最外层a的大小 a[0].resize(3);//同样,内层也可以vector指定大小 int t=a[0].size();///单独操作a中的元素,从而获得a[0]处数组长度 vector<vector<int>> b(5,vector(4);//也可以在创建时指定大小 

然后是一个方便的小函数swap(),就像sort()一般来说,这可以节省我们自己写交换函数的时间,如下所示

int a=1,b=3; swap(a,b);//交换了ab现在a是3b为1 int t=a; a=b; b=t;//原来大概需要写这么三行或者包装一个函数,这是一个让代码更简单的小方法 

使用提供的库函数-为什么不使用?你花时间和精力写一个函数,把你的代码块弄得一团糟。库函数真的高效吗?谁会欣赏你花时间写的这个肿块?前人已经为您提供了方便易用的功能包装,然后使用它。此外,这是C,python并不是提供了一堆方便人们使用的功能,也没有看到人们一个接一个地重写,用完了。 当然,我认为我们仍然可以知道原则,比如如何实现快速排列,直到我们可能可以使用伪代码来实现它 动规、深搜和广搜是高概率算法,其他算法或多或少会出现这三种影子,如kmp,而一些可以称为算法或可以记录为规则的应用范围相对较小(例如>6的质数只出现在与6倍数相邻的位置,可以自己理解,但很难总结这一点,随便举一组 6 7 8 9 10 11 12,6倍数间有5个数7 8 9 10 11排除双数剩余7 9 11.排除3倍数剩余7倍 11.这是为任何组建立的6倍数间数,但通过简单的排除来总结使用规则并不容易)。这种类型平时遇到的时候可以稍微记一下,不需要刻意去理解。虽然标记的三种类型并不难理解,但它们需要相对大量的练习来掌握,所以我认为训练它们更重要。 看算法,或学习或理解算法,最糟糕的是背诵,我从小就讨厌背诵工作,背诵是机械和无聊的工作,这不应该是所谓的智慧生活,重要的是理解,理解自然会使用,也达到所谓的背诵效果,但理解比背诵好得多,背诵,忘记背诵,浪费和过去一样的时间来达到效果。理解是不同的。忘记你所理解的,再次理解所需的时间远远少于背诵。理解是不同的。忘记你所理解的东西后,再次理解所需的时间远远少于背诵。就像古诗古文一样,那些被迫记忆的人已经被遗忘了,或者留下了几句话,但那些让你从心底感受到美的人,无论是节奏还是艺术观念,即使你只背诵了一两次,你也总能记住它们。我认为这个与代码无关的古诗小例可以区分背诵和理解的区别。 的确,要理解一个新的内容,或者说,新的算法,特别是在第一次接触时,并不容易。个人观点,不要先看代码,而是咨询相关算法,看那些详细的文章,可能了解一些代码,可能仍然有很多地方不理解,然后看那些说明,根据这些说明一步一步,然后找到一些经典的例子,如动态背包,加深他们的理解。如果还是听不懂,可以先放在一边,等第二天或者第二天头脑清醒的时候再看。不要把自己困在一个地方。 暂时写这么多,下次可能写一些算法或关于unity视野和遮挡的东西,但这还在测试中,不容易说。

标签: 12zj自加热风速传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台