Golang Leetcode 304. Range Sum Query 2D - Immutable.go
时间:2022-06-19
本文章向大家介绍Golang Leetcode 304. Range Sum Query 2D - Immutable.go,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89055108
思路
trick是行的方向上,保存累加值 这样计算sum的时候,只有用一次减法就搞定了
code
type NumMatrix struct {
s [][]int
}
/**
trick是行的方向上,保存累加值
这样计算sum的时候,只有用一次减法就搞定了
*/
func Constructor(matrix [][]int) NumMatrix {
m := len(matrix)
if m == 0 {
s := make([][]int, 0)
return NumMatrix{
s: s,
}
}
n := len(matrix[0])
for i := 0; i < m; i++ {
for j := 1; j < n; j++ {
matrix[i][j] += matrix[i][j-1]
}
}
return NumMatrix{
s: matrix,
}
}
func (this *NumMatrix) SumRegion(row1 int, col1 int, row2 int, col2 int) int {
if row2 >= len(this.s) || col2 >= len(this.s[0]) {
return 0
}
ret := 0
if col1 == 0 {
for i := row1; i <= row2; i++ {
ret += this.s[i][col2]
}
} else {
for i := row1; i <= row2; i++ {
ret += this.s[i][col2] - this[i][col1-1]
}
}
return ret
}
- 水晶报表的推模式
- Flash/Flex学习笔记(17):按键捕获
- 温故而知新:c#中的特性(attribute)
- 温故而知新:new与override的差异以及virtual方法与abstract方法的区别
- malloc函数及用法
- Centos下安装破解confluence6.3的操作记录
- 也谈如何用技术手段引导用户放弃IE 6
- 手把手教你用vue2.0写个弹窗组件
- FluorineFx:视频录制及回放(Flash/AS3环境)
- VB实现半透明或者部分透明窗体
- “automation服务器不能创建对象”错误之解决
- “微信身份证”来了!明年全国推广
- strtol函数 将字符串转换为相应进制的整数
- .net中的认证(authentication)与授权(authorization)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP使用函数用法详解
- 微信企业转账之入口类分装php代码
- 多个Laravel项目怎么共用migrations详解
- layui数据表格自定义每页条数limit设置
- Laravel 集成微信用户登录和绑定的实现
- PHP实现微信对账单处理
- Laravel5.1框架路由分组用法实例分析
- PHP的HTTP客户端Guzzle简单使用方法分析
- laravel 框架实现无限级分类的方法示例
- 详解Laravel5.6通过路由进行API版本控制的简单方法
- php+layui数据表格实现数据分页渲染代码
- thinkPHP框架乐观锁和悲观锁实例分析
- PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
- laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
- Laravel框架实现即点即改功能的方法分析