自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Go 1.18新特性——泛型

泛型是一种编程范式,它将类型参数化,可以用于编写灵活且可重用的函数或数据结构,这样我们就可以用自己的类型来代替那些被硬编码的类型。泛型的好处是可以在编译时期发现类型不匹配的错误,而不是在运行时期。

2023-06-06 09:39:54 2086

原创 消息队列简介

消息队列是一种进程间通信或同一进程的不同线程间的通信方式。消息队列是消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

2023-06-06 09:36:29 724

原创 Go 的时间操作

Go 语言中可以通过 time.Time 类型的 Format()函数对时间进行格式化,该函数的第一个参数是格式化的模板,模板里面的时间必须是 2006-01-02 15:04:05 这个时间,这个时间是固定的,不然就会出错,第二个参数是要格式化的时间。time.Timer 类型表示单次时间事件。time.Duration 是 time 包定义的一个类型,它代表两个时间点之间经过的时间,以纳秒为单位。time.Duration 是 time 包定义的一个类型,它代表两个时间点之间经过的时间,以纳秒为单位。

2023-05-14 08:31:32 3869 1

原创 Go语言基础

Go语言是谷歌2009年发布的第二款开源编程语言,它是一门编译型语言,它的语法与C语言类似,但它却是并发安全的,支持并行编程,而且它还能够方便地利用多核计算机进行高并发、高性能的程序开发。Go语言的出现,让我们在开发高并发程序时,不再需要去纠结线程、协程、锁、内存模型等问题,让我们可以更加专注于程序本身的逻辑。

2023-05-13 21:10:46 542

原创 LeetCode 96. Unique Binary Search Trees

动态规划,dp[i]表示i个节点的二叉搜索树的个数,dp[i] = dp[0] * dp[i-1] + dp[1] * dp[i-2] + …+ dp[i-1] * dp[0]。给定一个整数n,返回有n个节点的二叉搜索树的个数。

2023-05-12 20:04:25 83

原创 LeetCode 714. 买卖股票的最佳时机含手续费

给定一个整数数组prices,其中第i个元素代表了第i天的股票价格;非负整数fee代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。

2023-05-07 21:57:54 63

原创 LeetCode42. 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

2023-05-04 23:01:17 397

原创 LeetCode55. 跳跃游戏

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。

2023-05-03 19:59:48 883

原创 LeetCode347. 前 K 个频繁元素

给定一个非空的整数数组,返回其中出现频率前 k 高的元素。

2023-05-01 23:31:49 517

原创 LeetCode 785. 判断二分图

给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: graph[i] 中不存在i,并且graph[i]中没有重复的值。

2023-04-28 21:47:09 675

原创 LeetCode 15. 三数之和

给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素a,b,c,使得?请你找出所有和为0且不重复的三元组。答案中不可以包含重复的三元组。

2023-04-27 23:06:59 364

原创 LeetCode 18. 四数之和

给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。答案中不可以包含重复的四元组。

2023-04-27 23:06:29 365

原创 LeetCode 501. Find Mode in Binary Search Tree

给定具有重复项的二叉搜索树 (BST) 的根,返回其中的所有模式(即最常出现的元素)。

2023-04-26 14:49:04 431

原创 LeetCode 84. Largest Rectangle in Histogram

Given an array of integers representing the histogram’s bar height where the width of each bar is , return the area of the largest rectangle in the histogram.给定一个整数数组,表示柱状图的高度,每个柱子的宽度为,返回柱状图中最大矩形的面积。这道题目的解法是单调栈,单调栈的思路是,维护一个单调递减的栈,当遇到比栈顶元素小的元素时,就计算栈顶元素的面积,

2023-04-24 21:25:05 356

原创 leetcode_131 Palindrome Partitioning

Given a string s, partition s such that everysubstringof the partition is apalindrome. Return all possible palindrome partitioning of s.给定一个字符串,将其分割成若干个回文串,返回所有可能的分割方案。

2023-04-22 19:51:32 540

原创 Leetcode 337. House Robber III

偷窃者发现了一个新的地方来偷窃。这个地方只有一个入口,称为“根”。除了根之外,每个房子都有一个且只有一个父房子。经过一番观察,聪明的小偷意识到“这个地方的所有房子都形成了一个二叉树”。如果两个直接链接的房子在同一晚上被打破,它将自动联系警察。采用后序遍历的原因是,后序遍历是先遍历左右子树,然后再遍历根节点,这样就可以保证在遍历根节点的时候,左右子树的。确定小偷今晚可以偷窃的最大金额,而不会警告警察。数组已经求解完毕,这样就可以直接使用左右子树的。数组来求解当前节点的。

2023-04-20 16:01:03 384

原创 LeetCode 343. Integer Break

动态规划,dp[i]表示i的最大乘积,dp[i] = max(dp[i], max(j, dp[j]) * max(i-j, dp[i-j])),其中j为1到i-1的数。给定一个整数n,将其分解为k个正整数的和,其中k>=2,并最大化这些整数的乘积。数学方法,当n>=5时,尽可能多的分解为3,当n=4时,分解为2*2。返回你可以得到的最大乘积。

2023-04-18 23:21:16 120

原创 LeetCode 96. Unique Binary Search Trees

动态规划,dp[i]表示i个节点的二叉搜索树的个数,dp[i] = dp[0] * dp[i-1] + dp[1] * dp[i-2] + …+ dp[i-1] * dp[0]。给定一个整数n,返回有n个节点的二叉搜索树的个数。

2023-04-18 23:16:15 69

原创 UVA 11078 Open Credit System

给定一个长度为n的整数序列A0,A1,…, An-1,找出两个整数Ai和Aj(i

2023-03-28 15:06:46 123

原创 LeetCode 75. Sort Colors

链接: https://leetcode-cn.com/problems/sort-colors/

2023-03-28 11:14:22 60

原创 线性时间多数投票算法

论文链接: https://www.cs.utexas.edu/~moore/best-ideas/mjrty/index.html。

2023-03-27 08:53:52 67

原创 CodeForces 377A Maze

小P非常的喜欢方格迷宫。方格迷宫是一个n*m的由墙和空地构成的长方形方阵。只有当两点满足四联通条件时才能走过去。小P画了一个迷宫,里面所有的空地都是四连通的。但闲着没事干的小P认为自己画的迷宫里小墙太多了很难看,所以他希望能够通过把迷宫中k个格子从空地变成墙但不破坏整张图的连通性(即仍然保持所有空地在一个四连通块中)但是小P太蠢了做不来,请你帮助他。: 第一行n,m,k(描述如题) 第二到n+1行: 每行m个字符,分别是’.‘或’#'。'.‘表示空地,’#'表示墙。

2023-03-26 09:58:31 184

原创 LeetCode 230. Kth Smallest Element in a BST

链接: https://leetcode.com/problems/kth-smallest-element-in-a-bst/description/?

2023-03-25 09:44:27 111 1

原创 LeetCode 108. Convert Sorted Array to Binary

链接: https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/description/?

2023-03-25 09:21:08 47

原创 B树与B+树

又称,B树中所有结点的孩子个数的最大值称为B树的,通常用m表示。一棵m阶B树或为空树,或为满足如下特性的m叉树:树中每个结点至多有m棵子树,即至多含有m-1个关键字若根节点不是终端节点,则至少有两棵子树除根节点外的所有非叶节点至少有棵子树,即至少含有[m-2]+1个关键字。所有的叶子节点都出现在同一层,并且不带信息(可以视为外部节点或类似于折半查找判定树的查找失败节点,实际上这些节点不存在,指向这些节点的指针为空)。其中,为节点的关键字,且满足;为指向子树根节点的指针,且指针Pi-1。

2023-03-24 22:55:45 502

原创 CodeForces 55B Smallest number

链接: https://codeforces.com/contest/55/problem/B。

2023-03-24 16:07:36 88

原创 LeetCode 437. Path Sum III

【代码】LeetCode 437. Path Sum III。

2023-03-21 09:45:53 109

原创 LeetCode 33. Search in Rotated Sorted Array

我们需要先将原数组扩展, 比如数组[4,5,6,7,0,1,2]扩展为[4,5,6,7,0,1,2,4,5,6,7],其实就是把原数组的起始位置之前的元素复制到数组的后面。再以数组[6,7,0,1,2,4,5]为例,中间元素是0,0小于数组的最后一个元素5,所以原数组的起始位置在0的左边或者就是0。以数组[4,5,6,7,0,1,2]为例,中间元素是7,7大于数组的最后一个元素2,所以原数组的起始位置在7的右边,也就是0的位置。可以这样理解, 在[4,5,6,7,0,1,2,4,5,6,7]里,

2023-03-20 11:31:03 205

原创 LeetCode 621. Task Scheduler

给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而, 每两个相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。返回 CPU 处理任务的最短时间。

2023-03-19 11:04:08 467

原创 LeetCode 148. Sort List

一个单向链表, 依据结点的值对其进行从小到大排序, 要求时间复杂度为O(nlogn), 空间复杂度为O(1)

2023-03-18 20:19:17 49

原创 Codeforces 1042B Vitamins

【代码】Codeforces 1042B Vitamins。

2023-03-17 17:21:12 641

原创 LeetCode 701. Insert into a Binary Search

这道题目的思路很简单,就是找到要插入的位置,然后插入即可。这里有两种方法,一种是递归,一种是迭代。递归的方法比较简单,就是找到要插入的位置,然后插入即可。迭代的方法比较麻烦,需要找到要插入的位置,然后插入即可。

2023-03-17 10:43:57 73

原创 LeetCode 394. Decode String

这样可以减少内存分配的次数,提高性能。拼接字符串时可以使用。

2023-03-13 15:57:19 71

原创 LeetCode 844. Backspace String Compare

设置两个栈stack1和stack2, 一个用来存储字符串 s, 一个用来存储字符串 t, 然后遍历两个栈, 如果两个栈的元素相同, 则返回 true, 否则返回 false.

2023-03-13 11:16:50 215

原创 LeetCode 299. Bulls and Cows

LeetCode 299. Bulls and Cows。

2023-03-12 09:19:41 180

原创 LeetCode 116. Populating Next Right Pointers in Each Node

【代码】LeetCode 116. Populating Next Right Pointers in Each Node。

2023-03-11 16:53:38 355

原创 LeetCode 424. Longest Repeating Character Replacement

【代码】LeetCode 424. Longest Repeating Character Replacement。

2023-03-11 15:47:17 331

原创 LeetCode 438. Find All Anagrams in a String

【代码】LeetCode 438. Find All Anagrams in a String。

2023-03-11 11:12:41 322

原创 SQL97-返回顾客名称和相关订单号以及每个订单的总价

除了返回顾客名称和订单号,返回 Customers 表中的顾客名称(cust_name)和Orders 表中的相关订单号(order_num),添加第三列 OrderTotal,其中包含每个订单的总价,并按顾客名称再按订单号对结果进行升序排序。例如顾客名称cust_name为an的顾客的订单a5的订单总额为quantity*item_price = 15 * 25 = 375,最后以cust_name和order_num来进行升序排序。根据这个输出,可以初步确定,我们需要三张表的联合查询。

2023-03-09 20:51:38 980

原创 Go语言刷题常用数据结构和算法

go语言模拟栈、队列和集合,字符串处理技巧

2023-03-09 16:31:01 404

空空如也

空空如也

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

TA关注的人

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