![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
工程算法
工程算法系列
刘都都
当你不再需要通过别人的认可来证明自己的时候,你就真的强大了。
展开
-
链表系列之【 链表相交】【环形链表】
链表系列之【 链表相交】【环形链表】原创 2022-07-26 21:50:11 · 203 阅读 · 0 评论 -
链表系列之【移除链表元素】【反转链表】【两两交换链表中的节点】【删除链表的倒数第 N 个结点】
链表系列之【移除链表元素】【反转链表】【两两交换链表中的节点】【删除链表的倒数第N个结点】原创 2022-07-19 22:19:08 · 233 阅读 · 0 评论 -
数组系列之移除元素&有序数组的平方&二分查找
数组系列之移除元素&有序数组的平方&二分查找原创 2022-07-11 21:46:34 · 219 阅读 · 0 评论 -
【二叉树系列】插入&删除&修剪&有序数组转二叉搜索树&二叉搜索树转换为累加树
//450. 删除二叉搜索树中的节点//669. 修剪二叉搜索树//108. 将有序数组转换为二叉搜索树//538. 把二叉搜索树转换为累加树原创 2022-06-28 23:34:23 · 236 阅读 · 0 评论 -
【二叉树系列】验证二叉搜索树&二叉搜索树的最小绝对差&二叉搜索树中的众数&二叉树的最近公共祖先
二叉搜索树的最小绝对差 二叉搜索树中的众数236. 二叉树的最近公共祖先原创 2022-06-12 23:27:27 · 166 阅读 · 0 评论 -
二叉树系列【 从中序与后序遍历序列构造二叉树】【最大二叉树】【合并二叉树】【二叉搜索树中的搜索】
最大二叉树合并二叉树二叉搜索树中的搜索原创 2022-06-01 06:30:00 · 121 阅读 · 0 评论 -
二叉树系列【 左叶子之和】【找树左下角的值】【路径总和】
找树左下角的值路径总和原创 2022-05-31 22:26:53 · 126 阅读 · 0 评论 -
二叉树系列【求完全二叉树的节点个数&二叉树所有路径】
完全二叉树的节点个数//完全二叉树的节点个数func countNodes(root *TreeNode) int { if root==nil{ return 0 } return countNodes(root.Left)+countNodes(root.Right)+1}//完全二叉树的节点个数func countNodesV1(root *TreeNode) int { if root==nil{ return 0 } lt:=list.New() lt.原创 2022-05-17 23:30:00 · 204 阅读 · 0 评论 -
判断是否是对称二叉树、是否相同的树
判断是否是对称二叉树、是否相同的树101. 对称二叉树//101. 对称二叉树func isSymmetricv2(root *TreeNode) bool { if root==nil{ return false } arr:=[]*TreeNode{root,root} for len(arr)>0{ l:=arr[0] r:=arr[1] arr=arr[2:] if l == nil && r == nil { continu.原创 2022-05-12 23:45:00 · 134 阅读 · 0 评论 -
N 叉树的前序遍历
递归遍历func preorderV1(root *NodeC) []int { list:=list.New() t(root,list) var a []int for list.Len()>0{ vl:=list.Remove(list.Front()).(int) a=append(a, vl) } return a}func t(root *NodeC, res *list.List) *list.List { if root==nil{ retur原创 2022-05-10 00:45:00 · 1181 阅读 · 0 评论 -
二叉树基础之层序遍历&二叉树的层平均值&填充每个节点的下一个右侧节点指针&在每个树行中找最大值
二叉树基础之层序遍历//层序遍历/*解题思路:层序遍历,将每一层的节点放入队列中,而这个队列是个临时队列,在每次使用或者遍历之后给删除了,继续进行下一层次的遍历,通过遍历队列的size则就得到节点的数据*/func levelOrder(root *TreeNode) [][]int { var res [][]int st := list.New() if root!=nil{ st.PushBack(root) } var temp []int for st.Len()原创 2022-05-08 07:15:00 · 352 阅读 · 0 评论 -
二叉树基础之多种方法遍历【非递归】
func Test_Traversal_Ztree(t *testing.T){ head := new(TreeNode) head.Val=5 left:= new(TreeNode) left.Val=4 right:= new(TreeNode) right.Val=6 head.Right=right left01:= new(TreeNode) left01.Val=1 left.Left=left01 right02:= ne.原创 2022-05-06 06:45:00 · 300 阅读 · 3 评论 -
Golang && Java 实现 【将有序数组装换为二叉搜索树】
LeetCode 108道 .将有序数组转换为二叉搜索树给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。题目示例示例 1:输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:示例 2:输入..原创 2021-11-03 22:26:34 · 2495 阅读 · 0 评论 -
Golang 【大字符串相加,求和】
题目Golang 【大字符串相加,求和】给定两个字符串形式的非负整数num1 和num2,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 BigInteger),也不能直接将输入的字符串转换为整数形式。题目示例示例 1:输入:num1 = "11", num2 = "123"输出:"134"示例 2:输入:num1 = "456", num2 = "77"输出:"533"示例 3:输入:num1 = "0", n...原创 2021-11-01 23:18:10 · 2304 阅读 · 0 评论 -
Golang 二叉树系列【二叉树深度】
题目输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。题目示例例如:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回它的最大深度3解题思路可以利用深度优先搜索(DFS)、广度优先搜索(BFS)常见的 DFS(Deep First Search) 先序遍历(根左右)、中序遍历(左根右)、后序遍历(..原创 2021-10-24 00:35:16 · 1476 阅读 · 1 评论 -
Golang 实现【链表反转】
题目Golang 实现【链表反转】 如何反转一个单链表。题目示例输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL链表结构type ListNode struct { Val int Next *ListNode}第一种实现解题思路: 利用指针交互的思路复杂度分析:时间复杂度 O(N) : 遍历链表使用线性大小时间。空间复杂度 O(1): 变..原创 2021-10-23 00:52:32 · 5164 阅读 · 1 评论 -
Golang 实现 【求字符串括号合法性 判断】
题目输入一个字符串,其中包含[](){}六种括号,请你判断这个字符串组成的括号是否合法。题目示例Input: "()[]{}"Output: trueInput: "([)]"Output: falseInput: "{[]}"Output: true解题思路利用堆栈数据结构的特性:1、先入后出,后入先出。2、除头尾节点之外,每个元素有一个前驱,一个后继。Golang解题代码import ( "container/list" "fmt" "...原创 2021-09-07 16:18:30 · 2968 阅读 · 9 评论 -
Golang 实现求素数【 输入N,求N内素数个数 】
简介什么是素数? 素数也叫质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。判断素数的方法: 思路一:判断一个数是否素数,只需要把m 被 2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。 思路二:用n分别去除2到sqrt(n)-1,如果能被整除,则表明此数不是素数,反之是素数。解法暴力方式通过双层循环判断查找、时间复杂度 O(n^2)//暴力判断 时间复杂度O(n^2)func TestIsPrime(t *tes...原创 2021-09-06 18:35:09 · 2879 阅读 · 5 评论 -
Golang 实现二分查找,二分左侧查找,二分右侧查找 看完助你彻底搞明白!!
Golang语言实现 实现二分查找,二分左侧查找,二分右侧查找,直接贴代码,其中包括注释含义package algorithmProjectimport ( "fmt" "testing")func TestBinarySearch(t *testing.T) { ///////////下标:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21 arr := []int{0,1,2,3,4,4,4,5,6,7,8,9,9,9,10.原创 2021-09-02 19:53:07 · 4021 阅读 · 11 评论