ARTS第12周

1.Algorithm

70. 爬楼梯

class Solution {
    public int climbStairs(int n) {
        if(n<=2) return n;
        int a=1,b=2,r=2;
        for (int i=3;i<=n;i++){
            r=a+b;
            a=b;
            b=r;   
        }
        return r;
    }
}

2.Review

Data Structure - Circular Linked List
循环链表是链表的变体,它的第一个元素指向最后一个元素,最后一个元素指向第一个元素。单链表和双链表都可以变成循环链表。

作为循环的单链表

在单链表中,最后一个节点的下一个指针指向第一个节点。


作为循环的双端链表

在双端链表中,最后一个节点的下一个指针指向第一个节点,第一个节点的上一个指针指向最后一个节点,使得在两个方向上循环。



根据上面的说明,以下是需要考虑的要点。

  • 在单链表和双链表两种情况下,最后一个链接的next指向链表的第一个链接。
  • 在双链表的情况下,第一个链接的previous指向链表的最后一个节点。

基本操作

下面是支持循环列表的重要操作。

  • 插入-在列表的开始处插入一个元素。
  • 删除-从列表的开头删除一个元素。
  • 显示-显示列表。

插入操作

下面的代码演示了基于单链表的循环链表中的插入操作。
示例:

insertFirst(data):
Begin
   create a new node
   node -> data := data
   if the list is empty, then
      head := node
      next of node = head
   else
      temp := head
      while next of temp is not head, do
      temp := next of temp
      done
      next of node := head
      next of temp := node
      head := node
   end if
End

删除操作

下面的代码演示了基于单链表的循环链表中的删除操作。

deleteFirst():
Begin
   if head is null, then
      it is Underflow and return
   else if next of head = head, then
      head := null
      deallocate head
   else
      ptr := head
      while next of ptr is not head, do
         ptr := next of ptr
      next of ptr = next of head
      deallocate head
      head := next of ptr
   end if
End

显示

下面的代码演示了在循环链表中显示列表操作。

display():
Begin
   if head is null, then
      Nothing to print and return
   else
      ptr := head
      while next of ptr is not head, do
         display data of ptr
         ptr := next of ptr
      display data of ptr
   end if
End

要了解它在C语言中的实现,请 点击这里.

3.Tips

本周重新学习时间管理
要点如下:

做好两个计划表:

  • 规划,是制定出实现目标的有效路径,备忘,则可以帮助你执行时方向清晰、全情投入
  • 计划工具一:项目管理表,把复杂项目分拆子项目,并设定截止日期;
  • 计划工具二:日历表,重要的事先安排进日历,在计划中留出一定的缓冲地带,做好日计划。

把时间变成产出:

  • 提升行动力的办法,就是把任务拆分成动作
  • 快速行动的四字诀窍:转、做、存、扔
  • 学会心态建设,跟同伴交流克服拖延

敏捷工作法,让计划赶上变化:

  • 不要把时间浪费在努力工作中,避开完美主义、范围蔓延、返工三个时间陷阱
  • 使用敏捷工作法:
    -建立“最小可交付”意识,在早期拿出能够给需求方看的初级版本
    -寻求对方的反馈,然后进行迭代,手里始终只留一个任务。

如何跟忙碌相处:

  • 忙碌的人跟悠闲的人比起来,大概率更靠得住,行动力和能力都更强
  • 避开内卷化忙碌,不要长时期停留在一种简单的自我重复的状态
  • 形成自驱式忙碌:
    第一,你得有一个属于自己的目标
    第二,给成长留出足够的投入
    第三,跑出一个小循环,制造机会让自己尝到甜头。

重点:理论和道理都非常好和正确,关键有没有行动?

4.Share

本周分享内卷化

内卷化(involution),又译为“过密化”,指“农民在人口压力下不断增加水稻种植过程中的劳动投入,以获得较高的产量。然而,劳动的超密集投入并未带来产出的成比例增长,出现了单位劳动边际报酬的递减“的现象。

感想:

  • 创新和提升产值是企业发展的推进器,警惕企业“内卷化”现象。
  • 自身也需要不断提升能力,避免吃老本,警惕自身“内卷化”现象。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。