Leetcode 54 螺旋矩阵/59 螺旋矩阵II Golang

2024-05-24 03:58

本文主要是介绍Leetcode 54 螺旋矩阵/59 螺旋矩阵II Golang,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

54 螺旋矩阵

func spiralOrder(matrix [][]int) []int {if len(matrix) == 0 {return []int{}}R, C := len(matrix), len(matrix[0])visited := make([][]int, R)for r := 0; r < R; r++ {visited[r] = make([]int, C)}N := R * Cres := make([]int, N)r, c, dr, dc := 0, 0, 0, 1for i := 0; i < N; i++ {res[i] = matrix[r][c]visited[r][c] = 1if visited[fix(dr+r, R) % R][fix(dc+c, C) % C] == 1 {dr, dc = dc, -dr}r, c = r + dr, c + dc}return res
}func fix(x, n int) int {if x < 0 {return x + n}return x
}

59 螺旋矩阵II

func generateMatrix(n int) [][]int {mtx := make([][]int, n)for r := 0; r < n; r++ {mtx[r] = make([]int, n)}r, c, dr, dc := 0, 0, 0, 1for i := 0; i < n*n; i++ {mtx[r][c] = i + 1if mtx[fix(r+dr, n) % n][fix(c+dc, n) % n] > 0 {dr, dc = dc, -dr}r, c = r + dr, c + dc}return mtx
}func fix(x, n int) int {if x < 0{return x + n}return x
}

 

这篇关于Leetcode 54 螺旋矩阵/59 螺旋矩阵II Golang的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/997306

相关文章

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

哈希leetcode-1

目录 1前言 2.例题  2.1两数之和 2.2判断是否互为字符重排 2.3存在重复元素1 2.4存在重复元素2 2.5字母异位词分组 1前言 哈希表主要是适合于快速查找某个元素(O(1)) 当我们要频繁的查找某个元素,第一哈希表O(1),第二,二分O(log n) 一般可以分为语言自带的容器哈希和用数组模拟的简易哈希。 最简单的比如数组模拟字符存储,只要开26个c

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

leetcode-24Swap Nodes in Pairs

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode swapPairs(L

leetcode-23Merge k Sorted Lists

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode mergeKLists

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &