ret := []int{} m, n := len(mat), len(mat[0]) if m == 1 { return mat[0] } elseif n == 1 { for i:=0; i<m; i++ { ret = append(ret, mat[i][0]) } return ret }
i, j := 0, 0 direction := true rowHalf := true columnHalf := true
for i<m && j<n { ret = append(ret, mat[i][j]) if (i == 0 && direction && rowHalf) || (j == n-1 && direction && !rowHalf) { if rowHalf { if j < n-1 { j++ } else { i++ } } else { i++ } direction = false } elseif (j == 0 && !direction) || (i == m-1 && !direction && !columnHalf) { if columnHalf { if i < m-1 { i++ } else { j++ } } else { j++ } direction = true } elseif direction { i-- j++ } else { i++ j-- } if i+j >= m-1 { columnHalf = false } if i+j >= n-1 { rowHalf = false } } return ret }
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */
funcdeleteDuplicates(head *ListNode) *ListNode {
if head == nil || head.Next == nil { return head }
pre, cur := head, head.Next for cur != nil { next := cur.Next if cur.Val == pre.Val { pre.Next = next cur = next } else { pre = cur cur = next } } return head }
Post title:早起刷题(Day 2)
Post author:洪笳淏
Create time:2022-03-31 06:00:00
Post link:https://jiahaohong1997.github.io/2022/03/31/早起刷题(Day 2)/
Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.