自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 动态规则直观理解

动态规划,通常用来解决最有解问题,其最直观的表述叫表格法,就是用表格不断的推算。

2023-11-09 09:11:48 50 1

原创 回溯算法,递归和迭代

递归在算法中很常见,比如下面两个例子。A-program// 二叉树递归版本visit(root){ if root==null; return visit(root.left) // 左树 visit(root) // 根 visit(root.right) // 右树} 斐波那契数列的递归版本:B-program// 递归版本f(n){ if n=1 ;return n return n+f(n-1...

2021-04-09 10:50:50 1175

原创 二分区间的左右边界-Leetcode 33题

二分法可以分为二分查找,和二分区间,这两个是有区别的,一定要分清[l,r]k=0// 闭区间,需要等号for l<=r {// l<=mid<r mid = (l+r) / 2 if check(s[mid]) k=mid break else if s[mid] > target { r = k }else{ l = k+1 }}二分区间,则分为左边界和由边界,左边界:[0,k] [k+1,n-1

2021-04-07 09:56:18 275

原创 LinkedList的删除结点操作(golang)

LinkedList的删除结操作func removeNthFromEnd(head *ListNode, n int) *ListNode { // 链表,从头结点遍历 cur :=head length:=0 for cur !=nil{ length++ // 为什么这样不能删除结点 cur = cur.Next } dummy:=&ListNode{0,head} cur =dumm

2021-04-03 00:17:39 268

原创 leetcode14,最长公共子串

leetcode14:最长公共子串:笨拙的原始解法,编程中遇到太多的bug,觉得有很多边界问题func longestCommonPrefix(strs []string) string { if len(strs) <1 { return "" } rune_strs :=make([][]rune,len(strs)) // 初始化一个值 for i:=0;i<len(strs);i++{ if len(s

2021-04-02 09:40:03 149 1

原创 数据结构中的一些基本常用概念

1、字典序:对于多个序列,各自将其元素连接起来,组成一个字符串,比较这个字符串在字典中的顺序,从左至右,逐个字符比较。对于整数序列,字典序就是其对应的字符串:字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]小数在前,大数在后,就构成一个字典序最小...

2021-03-28 16:27:58 52

原创 动态规划问题,输入方案,股票买卖问题,背包问题

1.输出股票的买卖时机,使利润最大,当然可能存在多种方案,只要输出一种即可 这是需要缓存F数组,F[i] =max,则是i天卖出,然后去找之前买入时机就可以了func maxProfit(prices []int) []int { // 输出买卖时机 // [0,0]:表示没有交易,[1,3]:表示第1天买入,第3天卖出 n :=len(prices) if n < 2{ return []int{0,0} } f :...

2021-03-25 09:01:03 126

原创 golang语言的二分法查找和插入代码

二分法查找,在有序数组中,查找应该使用此方法,注意for循环的退出条件。func binary_search(arr []int,target int) int { n := len(arr) if n< 1{ return -1; } l,h :=0,n-1 // 要等号,不要会有边界问题 for l <= h { mid := (l+h) /2 if arr[mid] == target{ return mid }else if arr[

2021-03-24 16:59:17 206

原创 动态规划问题的数学视角

经典的动态规划问题:背包问题,先看简单的0-1背包问题

2021-03-22 10:25:54 151

原创 迪杰特斯拉算法伪码

Dijteska算法求1-->n的最小距离辅助数据N : 所有点集合S : 已计算距离的结合M[i][j]: i-->j的距离值,-1表示不可达D[]:距离数组D[1] =0,D[i] = +inf,{i!=0}S= {s1}Count = NWhile(--Count>0){ min = +inf idx = 0 for s in S { for i in (N-S) ...

2021-03-20 22:31:51 1240

原创 golang中使用for range语句修改切片问题

以下golang代码会报错:package mainimport "fmt"func main() { sli :=[]int{1,2,3,4,4} for idx, val:=range sli{ if val == 4{ sli =append(sli[0:idx],sli[idx+1:]...) } } fmt.Printf("%v\n",sli)}panic: runtime error: slice bounds out of range [5:4]go

2021-03-20 19:09:53 723

原创 图的若干表示方法

1、[[src,dst,weight]][[0,12,28],[5,6,39],[8,6,59],[13,15,7],[13,12,38],[10,12,35],[15,3,23],[7,11,26],[9,4,65],[10,2,38],[4,7,7],[14,15,31],[2,12,44],[8,10,34],[13,6,29],[5,14,89],[11,16,13],[7,3,46],[10,15,19],[12,4,58],[13,16,11],[16,4,76],[2,0,12],[15

2021-03-18 08:59:07 79

原创 leetcode797

a-p节点的所有路径(leetcode797 golang解法)import "fmt"func allPathsSourceTarget(graph [][]int) [][]int { // 前溯法,没有有思路就别写 len2:=len(graph); path :=make([]int,0); // 二维数组 res :=make([][]int,0); // 充分体现其面向过程的特点,实体不是很多 //

2021-03-17 11:16:04 111

原创 树和图的算法

public void bfs(TreeNode node){  print(node.val);  // 子树,第二层 print(node.left); print(node.right); List list; list.add(node.left); list.add(node.right);     while(list.size()>0){    List list2;    for(Node node list){ .

2021-03-14 21:52:20 93

转载 使用好markdown工具

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-12-17 17:13:06 57

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除