ARTS 第6周

栏目: 编程工具 · 发布时间: 6年前

内容简介:[TOC][思路]

[TOC]

Algorithm

807. Max Increase to Keep City Skyline

难度:[medium]

[思路]

  1. 先求出每一行的最大值,以及每一列的最大值
  2. 每一个元素对应的值其实就是:该元素对应行的最大值和列的最大值中 小的那一个值
  3. 那这个值减去原来的值即可求出差值,把所有元素的差值相加即可

[参考代码]

func maxIncreaseKeepingSkyline(grid [][]int) int {
    // 先求出每一行的最大值,以及每一列的最大值
    rowMax := make([]int, len(grid[0]))
    columnMax := make([]int, len(grid[0]))
    lens := len(grid[0])

    for i := 0; i < lens; i++ {
        tempRow := 0
        tempCol := 0
        for j := 0; j < lens; j++ {
            if grid[i][j] > tempRow {
                tempRow = grid[i][j]
            }
            if grid[j][i] > tempCol {
                tempCol = grid[j][i]
            }
        }
        rowMax[i] = tempRow
        columnMax[i] = tempCol

    }

    res := 0
    for i:=0; i < lens; i++ {
        for j:=0; j<lens; j++ {
            if rowMax[i] < columnMax[j] {
                res += rowMax[i] - grid[i][j]
            } else {
                res += columnMax[j] - grid[i][j]
            }
        }
    }
    return res
}

Review

Part 35: Reading Files: https://golangbot.com/read-files/

主要讲的内容是如何通过golang来读取一个文件里的内容

内容大纲:

  • 将整个文件读入内存
    • 通过绝对路径读取
    • 通过命令行传入路径作为参数来读取
    • 将文件与代码一起打包成二进制可执行文件
  • 通过小块内存逐步读取大文件
  • 逐行阅读一个文件

Tips

分享git alias常用的几个快捷命令:

https://www.jianshu.com/p/d32d322766eb

Share

以前对UML一直都是一知半解,最近看了一遍关于UML规范的文章,写的很通俗易懂,推荐大家阅读:

程序员都该懂的 UML 规范! https://mp.weixin.qq.com/s/ubWEKJXPisR47L653NjpeA

这是我的总结:

  • 泛化关系(generalization):

    • is-a 的关系,我的理解是广泛与具体的对应关系,

      比如:mac是电脑,小米笔记本也是电脑,男人是人,iphone是手机,华为也是手机。在这之中:手机就只一个广泛的名称,是多种手机的归纳,而iPhone就是一个具体的手机品牌,手机里的一个分支。

    • 程序中表现: 继承于 具体类 ,具体类的一个分支

    • UML:带空心箭头的直线

  • 实现关系(realization):

    • 从抽象到具体的实现关系,从抽象的概念到具体可见的实物。

      比如:可移动通讯设备与手机,可移动通讯设备和智能手表。可移动通讯设备是一种抽象的概念,它只描述了几个特征,可移动,可通讯,具体怎么做到却不管,而手机与智能手表就是这个概念的具体实现的产物,可以用手机来实现通讯,也可以用手表来实现通讯。

    • 程序中的表现:继承于抽象的类,即抽象的的具体实现 , 如:Readable,Printable等抽象功能类,于该功能对应接口的具体实现

    • UML:带空心箭头的虚线

  • 聚合关系(aggregation):

    • 将多个独立的个体聚集在一起,形成一个整体,比如 码农 和研发部门。这种聚合的关系与组合关系不同,整体和其中的每个部分是弱依赖关系,即使整体不存在了,个体仍然存在,就 像研发部解散了,码农仍然是码农,只不过换家公司。
    • 程序中的表现:类的附加功能
    • UML:带空心菱形箭头的直线
  • 组合关系(composition):

    • 整体由部分构成,但是整体和部门是强依赖关系,就像公司和部门的关系,公司都倒闭了,何来部门
    • 程序中的表现:一个类有多个父类组合实现
    • UML:带实心菱形箭头的直线
  • 关联关系(association):

    • 一个对象与另一个对象之间相互关联,就像菜刀与砧板的关系,只要有菜刀的地方就一定需要砧板,它们相互联系,但彼此不会随着对方改变而变化,它们互不影响
    • 程序中的表现:描述不同的类对象之间的关系
    • UML:带箭头的直线
  • 依赖关系(dependency):

    • 描述一个对象在运行期间会用到另一个对象的关联关系,比如炒菜时需要用火,开空调时需要用电,这种依赖于对方才能自身运行的状态
    • 程序中的表现:通过构造函数、形参等体现,必须要传入这些参数才能运行
    • UML:带箭头的虚线
  • 顺口溜:

    • 实箭泛化虚实现
    • 虚线依赖实关联
    • 空菱聚合实组合
    • 项目沟通图常见

本周阅读

五月第二周:2, 4, 5, 6, 7
-

Golang 需要避免踩的 50 个坑:https://juejin.im/post/5cad92e8f265da036d79a11f
左大括号 { 一般不能单独放一行
访问 map 中不存在的 key
16. string 类型的值是常量,不可更改

-

日常使用 Git  19 个建议: https://juejin.im/entry/56737bca00b0bf37ccb00ebe

Mac系统清理:  https://www.cnblogs.com/yajunLi/p/7008578.html
go语言选择语句 switch case:  https://studygolang.com/articles/4574
两种方式:
switch后接表达式,做运算
switch后不接,在case里做判断

漫画:什么是LRU算法?https://mp.weixin.qq.com/s/L-rTC-qlnvKxbwUI1FmeHw

程序员都该懂的 UML 规范!https://mp.weixin.qq.com/s/ubWEKJXPisR47L653NjpeA
Part 35: Reading Fileshttps://golangbot.com/read-files/

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

打造有吸引力的学习型社群

打造有吸引力的学习型社群

苏平、田士杰、吕守玉 / 机械工业出版社 / 45.00元

本书首先对社群的定位、准备和吸引粉丝方面等做了饶有趣味的介绍,从社群黏度的提升、社群知识的迭代与转化和社群的持续发展等多个角度入手,对学习型社群的运营手段、运营模式、运营规律和运营经验等进行了全方位剖析。从中国培训师沙龙这个公益社群近十年成功运营的经验中,为如何经营好学习型社群总结出了一套系统性的、具有实操价值的方法。并以此为基础,扩展到知识管理、团队管理、内容IP等领域,为有致于社团建设以及优质......一起来看看 《打造有吸引力的学习型社群》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具