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 Files:https://golangbot.com/read-files/

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

查看所有标签

猜你喜欢:

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

Powerful

Powerful

Patty McCord / Missionday / 2018-1-25

Named by The Washington Post as one of the 11 Leadership Books to Read in 2018 When it comes to recruiting, motivating, and creating great teams, Patty McCord says most companies have it all wrong. Mc......一起来看看 《Powerful》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具