力扣
blakezyr
如果什么都很容易,那还要选择做什么?
展开
-
Golang中slice和append的关系
这里是一个大坑 首先我们都知道,append函数能够将slice追加至末尾,但是这里需要考虑值传递还是引用传递,因为如果如果是值传递,改变切片不会改变append之后的结果;但如果是引用传递,改变了切片的内容,append的结果当然也会随之改变! var res [][]int tmp:=[]int{5} res=append(res,tmp) res==[[5]] //如果这时候我们去改变tmp的内容,那么res也会随之改变 //如 tmp[0]=1 res==[[1]] ...原创 2020-11-26 14:17:40 · 365 阅读 · 0 评论 -
Golang中append头部插入的方法
golang中的append函数一般都是尾部插入,例如 var res [][]int sum:=[]int{2} res=append(res,sum) 如果要让他在头部插入呢? var res [][]int sum:=[]{2} res=append([][]int{sum},res...) 解释如下 首先append第一维度肯定要保持和等号左边一样的二维切片,否则他是没办法插入的,具体可以看append函数的源码 因此我们需要自己构造一个二维切片放入我们要头插的内容,当然二维要放入的内容肯定是原创 2020-11-23 20:37:48 · 8422 阅读 · 5 评论 -
二叉树 层次遍历 Golang 切片当队列(此题为层次遍历模板)
面试题 04.03. 特定深度节点链表 题目 给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。 示例 输入:[1,2,3,4,5,null,7,8] 1 / \ 2 3 / \ \ 4 5 7 / 8 输出:[[1],[2,3],[4,5,7],[8]] 代码 /** * Definition for a binary tree node. * type TreeNode原创 2020-11-22 17:45:22 · 212 阅读 · 1 评论 -
【11.17力扣打卡】(148)链表排序(先写了一个归并排序)
题目 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 进阶: 你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗? 示例1 输入:head = [4,2,1,3] 输出:[1,2,3,4] 示例2 输入:head = [-1,5,3,4,0] 输出:[-1,0,3,4,5] 示例3 输入:head = [] 输出:[] 代码 /** * Definition for singly-linked list. * type ListNod原创 2020-11-17 17:21:11 · 134 阅读 · 0 评论 -
【11.8力扣打卡】(力扣1255)得分最高的单词集合(DFS)
题目 你将会得到一份单词表 words,一个字母表 letters (可能会有重复字母),以及每个字母对应的得分情况表 score。 请你帮忙计算玩家在单词拼写游戏中所能获得的「最高得分」:能够由 letters 里的字母拼写出的 任意 属于 words 单词子集中,分数最高的单词集合的得分。 单词拼写游戏的规则概述如下: 玩家需要用字母表 letters 里的字母来拼写单词表 words 中的单词。 可以只使用字母表 letters 中的部分字母,但是每个字母最多被使用一次。 单词表 words 中每个单原创 2020-11-09 12:48:21 · 256 阅读 · 0 评论 -
【11.6力扣打卡】DFS深度优先和BFS广度优先(二叉树)
DFS深度优先搜索 深度优先通俗理解:从树的根节点开始,一直往下遍历,访问其左孩子结点,直到遇到叶子结点,则退回到上一个结点,访问这个节点的另一个孩子(右)结点,这样便可以遍历完整个树。这一个访问的过程,是否觉得很像栈的递归调用?如果是子节点则取上一个结点进行递归。 应用场景:一般题目为待求解找祖先?找路径? 最近刷题遇到的DFS(力扣257)遍历二叉树的所有路径,废话少说,上题目: 代码如下: /** * Definition for a binary tree node. * type Tre原创 2020-11-06 18:13:59 · 182 阅读 · 0 评论