zoukankan      html  css  js  c++  java
  • ARTS第十四周

    ARTS第十四周

    ARTS是什么?

    Algorithm:每周至少做一个leetcode的算法题;
    Review:阅读并点评至少一篇英文技术文章;
    Tip/Techni:学习至少一个技术技巧;
    Share:分享一篇有观点和思考的技术文章。

    Algorithm

    题目:746. Min Cost Climbing Stairs

    解题思路

    根据题意,爬楼梯的方式有两种,一种爬一步,一种爬两步,每次爬需要花费一次开销,要求最终爬到楼梯顶层最小需要花费多少。因为每一层楼梯都可以有两种方式爬上来,1:从下二级爬上来,2:从下一级爬上来,爬到当前楼层的最小花销是当前楼层的花销 + 两种方式中花费比较小的那种开销。根据这种意思,可以写出下面的代码。

    代码

     public int minCostClimbingStairs(int[] cost) {
            //到前一个台阶的总和
            int f1 = 0;
            //到前两个台阶的总和
            int f2 = 0;
            for (int i = 0; i < cost.length; i++) {
                //到当前台阶的和
                int f0 = cost[i] + Integer.min(f1,f2);
                //原前一个台阶变成了前两个台阶
                f2 = f1;
                //当前台阶变成了前一个台阶
                f1 = f0;
            }
            //最终取前一个和前两个台阶中小的那个
            return Math.min(f1,f2);
        }
    

    Review

    https://rocketmq.apache.org/rocketmq/the-design-of-transactional-message/一文讲述了Rocket MQ事务消息的设计。

    概念介绍

    半消息
    半消息指的是不能立即投递的消息。当一个消息被成功发送到MQ服务器,但是服务器没有收到生产者的两次确认消息,这样的消息会被标记成“暂时不能投递”。这种状态的消息被称为半消息。

    消息状态检查
    网络中断或者生产者应用重启会导致丢失事务的二次确认消息。当MQ服务器发现一个消息状态长时间保持半消息状态时,它会发送请求给消息生产者,要求检查消息的状态(提交 or 回滚)。

    执行流程图

    详细设计

    概要

    发送事务消息

    检查事务消息

    Tip/Techni

    Karabiner:mac上的改键神器,大幅提升工作效率。

    Capslock:这是基于Karabiner的一个快捷键配置项目,把传统的大小写键Capslock改成一个修饰键,通过和其他按键的组合实现很多实用的快捷键,感兴趣的同学欢迎star。

    Share

    Rocket MQ 4.3.0分布式事务消息初析这篇文章简单介绍了Rocket MQ事务消息的概念和代码实战,配合review处的文章食用,效果更佳。如果你还没有使用过Rocket MQ的事务消息的话,赶紧上手体验吧。

    如果您觉得本文对你有用,不妨帮忙点个赞,或者在评论里留言交流,欢迎您持续关注我的博客^_^
  • 相关阅读:
    Centos7安装Python3的方法
    word2vec原理(二) 基于Hierarchical Softmax的模型
    word2vec原理(一) CBOW与Skip-Gram模型基础
    爬虫的危害有多大
    python线程池实现
    进程和线程、协程的区别
    程序的编译与解释之间的区别
    【python3】如何建立爬虫代理ip池
    可能是史上最全的机器学习和Python(包括数学)速查表
    python 元类
  • 原文地址:https://www.cnblogs.com/muxuanchan/p/10638853.html
Copyright © 2011-2022 走看看