自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(166)
  • 资源 (1)
  • 收藏
  • 关注

原创 找出输掉零场或一场比赛的玩家

给你一个整数数组 matches 其中 matches[i] = [winneri, loseri] 表示在一场比赛中 winneri 击败了 loseri。返回一个长度为 2 的列表 answer :answer[0] 是所有 没有 输掉任何比赛的玩家列表。answer[1] 是所有恰好输掉 一场 比赛的玩家列表。两个列表中的值都应该按 递增 顺序返回。注意:只考虑那些参与 至少一场 比赛的玩家。生成的测试用例保证 不存在 两场比赛结果 相同。

2024-05-22 21:00:36 198

原创 go实现最小二乘函数

最小二乘法(又称最小平方法)是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。这种方法可以用于求得目标函数的最优值,也可以用于曲线拟合,解决回归问题。利用最小二乘法,可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法的作用主要体现在以下几个方面:拟合曲线:最小二乘法是解决曲线拟合问题最常用的方法。在已知一组数据点的情况下,可以利用最小二乘法求得一条最能代表这些数据的曲线。求解未知量:最小二乘法可以用于求解未知量,使得误差值最小。

2024-05-22 20:52:09 142

原创 go实现最小二乘函数

最小二乘法(又称最小平方法)是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。这种方法可以用于求得目标函数的最优值,也可以用于曲线拟合,解决回归问题。利用最小二乘法,可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法的作用主要体现在以下几个方面:拟合曲线:最小二乘法是解决曲线拟合问题最常用的方法。在已知一组数据点的情况下,可以利用最小二乘法求得一条最能代表这些数据的曲线。求解未知量:最小二乘法可以用于求解未知量,使得误差值最小。

2024-05-21 21:31:13 88

原创 完成所有任务需要的最少轮数

给你一个下标从 0 开始的整数数组 tasks ,其中 tasks[i] 表示任务的难度级别。在每一轮中,你可以完成 2 个或者 3 个 相同难度级别 的任务。返回完成所有任务需要的 最少 轮数,如果无法完成所有任务,返回 -1。

2024-05-14 20:18:22 278

原创 letcode整数反转

将整数转成字符串形式,因为是有符号整数所以负数要多一位,做出判断处理,根据得到的长度按位置从整数中取出对应位置的数字做反转处理,最后再根据位数进行判断。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。假设环境不允许存储 64 位整数(有符号或无符号)。输入:x = -123。输入:x = 123。输入:x = 120。

2024-05-12 10:09:35 156 1

原创 Z字形变换

使用List装载字符输出的行数,用flag控制字符输出在哪一行,用stringBuilder保存字符。,以从上往下、从左到右进行 Z 字形排列。

2024-02-11 10:32:46 387

原创 重复的DNA序列

返回所有在 DNA 分子中出现不止一次的。时,识别 DNA 中的重复序列非常有用。的序列(子字符串)。由一系列核苷酸组成,缩写为。

2023-11-05 10:57:39 163

原创 数组中两个数的最大异或值

哈希表:异或运算的性质是任意两位异或结果都等于另一位。因此我们可以用二进制位数从高到低与数组中其中一位异或,如果结果存在,在数组中就返回其值。最大运算结果是 5 XOR 25 = 28.的最大运算结果,其中。

2023-11-04 09:54:37 237

原创 H 指数问题

计数排序:新建并维护一个数组papers,用来记录当前次数引用论文的数量。然后从后往前遍历,当被引用数量大于或等于当前次数,则返回。篇论文被引用的次数。计算并返回该研究者的 h。代表“高引用次数” ,一名科研人员的。篇论文,每篇论文相应的被引用了。次,其余两篇论文每篇被引用。给定数组表示研究者总共有。是指他(她)至少发表了。篇论文,并且每篇论文。

2023-10-29 10:34:18 160

原创 掷骰子等于目标和的方法数

动态规划,设置二维dp数组,第一维表示n个骰子,第二维表示点数之和。第一层循环骰子数i,第二层循环目标和j,第三层循环每个骰子的点数,当投到第i个骰子的点数为l时,其之前投过的骰子和应该是j-l。得到 7 的和有 6 种方法:1+6 2+5 3+4 4+3 5+2 6+1。种方式中)滚动骰子的数量,使正面朝上的数字之和等于。返回的结果必须是对 109 + 7 取模。你扔两个骰子,每个骰子有 6 个面。个一样的骰子,每个骰子上都有。你扔一个有 6 个面的骰子。得到 3 的和只有一种方法。

2023-10-24 20:32:37 90

原创 股票价格跨度

/ 返回 4 ,因为截至今天的最后 4 个股价 (包括今天的股价 75) 都小于或等于今天的股价。单调栈,每当调用next函数时将当日价格的股票和往日的比较,大于等于当日的股票推出栈。设计一个算法收集某些股票的每日报价,并返回该股票当日价格的。例如,如果未来 7 天股票的价格是。

2023-10-22 17:57:30 105

原创 统计无向图中无法互相到达点对数

需要一个布尔类型数组记录每个节点是否被访问过,还需要map记录每个节点相邻的其他节点。通过深度优先遍历统计每个联通图的节点数。根据二项式法则,求出结果。所有点都能互相到达,意味着没有点对无法互相到达,所以我们返回 0。同时给你一个二维整数数组。所以我们返回 14。

2023-10-21 16:18:54 117

原创 只出现一次的数字

由于题目中要求空间复杂度为O(1),所以可以采用位运算得到值,位运算按位异或相同为0相异为一,所以设置初始值为零,这样它与任何数按位异或都是那个数。,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

2023-10-14 10:53:31 140

原创 买卖股票的最佳时机含冷冻期

设计一个算法计算出最大利润。对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。dp[i][2]对应当前不持有股票且不在冷冻期的最大累计收益。dp[i][1]对应当前不持有股票且在冷冻期的最大累计收益。典型的动态规划问题,其中dp数组记录股票交易中的三种状态。dp[i][0]对应当前持有股票时的最大累计收益。

2023-10-06 10:59:40 73

原创 java实现课程表 II

总共有 4 门课程。要学习课程 3,你应该先完成课程 1 和课程 2。并且课程 1 和课程 2 都应该排在课程 0 之后。总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺序为。返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回。利用列表和栈等数据结构,通过深度优先遍历就行排列优先级。如果不可能完成所有课程,返回。因此,一个正确的课程顺序是。

2023-09-10 16:49:58 460

原创 最多可以摧毁的敌人城堡数目

将军队从位置 0 移动到位置 3 ,摧毁 2 个敌人城堡,位置分别在 1 和 2。通过对当前位置两端分别求最大摧毁数量,从而得到最终结果,代码如下。- 将军队从位置 8 移动到位置 3 ,摧毁 4 个敌人城堡。4 是最多可以摧毁的敌人城堡数目,所以我们返回 4。现在,你需要决定,将你的军队从某个你控制的城堡位置。移动你的军队,或者没有你控制的城堡,请返回。当军队移动时,所有途中经过的敌人城堡都会被。由于无法摧毁敌人的城堡,所以返回 0。可以摧毁的敌人城堡数目。

2023-09-02 09:58:04 472

原创 Java合并区间

区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,4] 和 [4,5] 可被视为重叠区间。表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回。

2023-08-27 16:02:01 732

原创 汇总区间java解决方案

首先对区间起始位置和终止位置进行初始化操作,每次循环开始对degin和end都重新赋值。再通过一层循环确定end的最终位置,最后创建区间。的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于。列表中的每个区间范围。

2023-08-26 10:15:14 152

原创 两个非重叠子数组的最大和

输入:nums = [2,1,5,6,0,9,5,0,3,8], firstLen = 4, secondLen = 3。输入:nums = [0,6,5,2,2,5,1,9,4], firstLen = 1, secondLen = 2。输入:nums = [3,8,1,3,2,1,8,9,0], firstLen = 3, secondLen = 2。解释:子数组的一种选择中,[5,6,0,9] 长度为 4,[0,3,8] 长度为 3。子数组是数组的一个 连续 部分。

2023-04-29 16:53:48 61 1

原创 根据身高排序(力扣2418)

输入:names = ["Mary","John","Emma"], heights = [180,165,170]输入:names = ["Alice","Bob","Bob"], heights = [155,185,150]对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。解释:第一个 Bob 最高,然后是 Alice 和第二个 Bob。输出:["Mary","Emma","John"]输出:["Bob","Alice","Bob"]

2023-04-25 21:41:39 535

原创 节点与其祖先之间的最大差值

给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V = |A.val - B.val|,且 A 是 B 的祖先。(如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先)输入:root = [8,3,10,1,6,null,14,null,null,4,7,13]在所有可能的差值中,最大值 7 由 |8 - 1| = 7 得出。输入:root = [1,null,2,null,0,3]

2023-04-20 15:52:34 355

原创 驼峰式匹配

输入:queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FoBaT"输入:queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FoBa""FooBarTest" 可以这样生成:"Fo" + "o" + "Ba" + "r" + "T" + "est".

2023-04-15 10:17:17 288

原创 出现最频繁的偶数元素

通过HashMap记录数组中每个偶数出现的频次,并遍历HashMap,输出频次最高最小的偶数。数组中的偶数元素为 0、2 和 4 ,在这些元素中,2 和 4 出现次数最多。输入:nums = [29,47,21,41,13,37,25,7]输入:nums = [0,1,2,2,4,4,1]输入:nums = [4,4,4,9,2,4]如果不存在这样的元素,返回。解释:4 是出现最频繁的偶数元素。,返回出现最频繁的偶数元素。返回最小的那个,即返回 2。解释:不存在偶数元素。

2023-04-14 21:02:14 308

原创 困于环中的机器人

重复指令,机器人进入循环:(0,0)——>(0,1)——>(- 1,1)——>(- 1,0)——>(0,0)。重复指令,机器人进入循环:(0,0)——>(0,1)——>(0,2)——>(0,1)——>(0,0)。位置:(- 1,0)方向:东方。位置:(- 1,1)方向:南。位置:(0,2).方向:西。位置:(0,1).方向:西。位置:(0,2)方向:南。位置:(0,0)方向:北。位置:(- 1,0)方向:南。位置:(0,2).方向:北。位置:(0,2).方向:北。位置:(0,0)方向:东方。

2023-04-11 20:40:08 464

原创 Go语言学习笔记十四(将结构体的数据保存为json格式)

MarshalJson()函数是序列化过程的主函数入口。通过这个函数可以调用不同的子序列化函数满足不同类型数据的转化。该函数传入一个interface{}类型数据,如果转化成功返回数据,失败则返回错误信息。这里的MarshalJson()是自己创建的函数将Actor实例化结构体转化成JSON格式,如果转化成功则输出数据,失败则打印错误。在Go语言中,结构体数据可以通过系统提示的json.Marshal()函数进行序列化。WriteAny()是自己创建的函数可以做任意值序列化,如果发生错误则返回错误信息。

2023-02-12 09:32:14 1369 1

原创 Go语言语言学习十三(反射的对象值)

Field(i int) Value 根据索引,返回索引对应的结构体成员字段的反射值对象。找到时返回零值,当值不是结构体或索引超界时宕机。reflect.ValueOf()返回的是reflect.Value()类型。在Go语言中反射不仅可以获取值的类型和种类,还可以获取值和更改值,使用reflect.ValueOf()获取和设置变量的值。当reflect.Value不可寻址时,使用Addr()方法也是不可寻址的,同时发生宕机。

2023-02-09 19:29:14 578

原创 删除子文件夹

解释:文件夹 “/a/b/c” 和 “/a/b/d” 都会被删除,因为它们都是 “/a” 的子文件夹。解释:“/a/b” 是 “/a” 的子文件夹,而 “/c/d/e” 是 “/c/d” 的子文件夹。输入:folder = [“/a”,“/a/b”,“/c/d”,“/c/d/e”,“/c/f”]输入: folder = [“/a/b/c”,“/a/b/ca”,“/a/b/d”]输出: [“/a/b/c”,“/a/b/ca”,“/a/b/d”]输出:[“/a”,“/c/d”,“/c/f”]

2023-02-08 14:49:37 344

原创 Go语言学习笔记十二(反射的类型对象)

reflect.Type的Field()方法返回StructField结构,这个结构描述结构体的成员信息,通过这个信息可以获取成员与结构体的关系,如偏移量、索引、是否为匿名字段,结构体标签(Struct Tag)等,而且还可以通过StructField的Type字段进一步获取结构体成员的类型信息。任意值可以通过reflect.TypeOf()方法获取反射对象信息,如果它的类型是结构体,可以通过反射值对象(reflect.Type)的NumField()和Field()方法获取结构体成员的详细信息。

2023-02-07 19:03:21 464

原创 Go语言学习笔记十一(Telnet回音服务器)

第十二行使用bufio包的NewReader()方法创建一个网络数据读取器,这个Reader将输入数据的读取过程进行封装,方便我们快速获取到需要的数据。第十四行会话处理开始,从Socket连接,通过reader读取器读取封包,处理封包后需要继续读取从网络发送过来的下一个封包,因此需要一个会话处理循环。第八到十一行,当输入字符串包含“@close“前缀时,在第十一行返回false,表示需要关闭当前会话。第二十二行服务器接受一个连接,在没有连接时,Accept函数会一直阻塞,直到连接到来。

2023-02-04 14:25:51 775

原创 Go语言学习笔记十(通道channel)

go语言使用channel进行goroutine之间的数据传输,channel在go语言中是一种特殊的数据类型,在任何时候同时只能有一个goroutine访问通道进行发送和获取数据。data, ok :=

2023-01-31 11:04:57 581

原创 Go语言学习笔记九(创建goroutine)

Go程序运行启动是从main包的main()函数中开始,在程序启动时,go程序会为每个main()函数创建一个默认的goroutine。以上代码实现的功能是不断的打印tick,running()函数无线循环来打印,main()函数则支持人工输入打印。以上示例一共创建了两个goroutine,running()函数一个,main()函数一个。这里展示的代码实现的功能和上面的一样,不同点在于这里将running()函数从显示状态改成匿名状态。下面使用简单的例子为普通的函数创建goroutine。

2023-01-29 14:17:14 142

原创 Go语言学习笔记八(批量判断空接口变量)

以上代码实现电子支付和现金支付两个结构体,然后在电子支付机构体上分别创建刷脸支付和扫码支付两个函数,然后再创建对应的接口。在现金支付结构体上创建使用现金的函数和对应的接口。第23行代码是使用switch对接口变量进行判断,不同接口使用不同策略,第33行开始实例化。我们在购物或者购买商品的时候通常有两种支付方式一种是电子支付,另一种是现金支付。电子支付又分为两种方法,一种是刷脸支付。现金支付直接交钱就好。这里我通过使用switch对接口变量进行判断处理。

2023-01-26 10:52:48 115

原创 Go语言语言学习笔记七(空接口保存任意值)

以上代码首先定义一个结构体Directionary结构体,结构体中的数据为键值都是空接口类型的字典。然后实现Set,Get方法,再实现Visit函数遍历字段的所有键值关联数据。然后在main函数中实例化Directionary。进行设置数据测试,获取数据测试最后进行遍历数据测试。go语言中空接口可以用来保存任意类型的值,但是不能直接当成任意类型进行赋值和运算。下面设计使用map和interface{}实现一个可以关联任何类型的字典实例。

2023-01-23 10:51:00 145

原创 Go语言学习笔记六

第十八行为了方便实现sort.Interface接口,将[]*Hero定义为Heros类型。第六行将int声明为HeroKind英雄类型,后面会将这个类型当作枚举来使用。完整实现sort.Interface进行结构体排序,详细代码如下。第二十四行当英雄类型不一样的时候根据类型枚举值大小排序。第八行定义了一些英雄的类型,作为枚举值。第二十六行,默认按照英雄名字大小排序。第三十九行对排序好的数据进行遍历。第二十二行实现Less()方法。第二十八行实现Swap()方法。第十九行实现Len()方法。

2023-01-21 10:18:00 1486

原创 GO语言学习笔记五

手机拥有屏幕,电池,指纹等信息,这些信息填充到json数据中,如果选择性的进行分离比较麻烦,go语言正好可以通过匿名结构体完成数据分离的操作。第三行定义了一个匿名结构体,机构体内嵌了一个Screen和一个Battery结构体,并加入了临时字段hasTouchID。第19行使用json.Marshal(),函数进行JSON序列化,将raw变量转变成[]byte格式数据。第六行定义只有屏幕属性和指纹属性的匿名结构体,内部嵌入一个屏幕结构体。然后准备JSON数据,对结构体实例化。这里分别定义了屏幕和电池的属性。

2023-01-17 10:55:32 397

原创 有效括号问题

删除后转置加入list中,在此之前要判断是否反转过,这样的好处是始终可以对比一边的括号就行了不用反复递归。定义一个remove函数一共五给参数,字符串str,list集合,检查位置,删除位置,比较数组。给定一个无效的括号字符串删除最少字符使其变成有效的括号对儿所有字符串。

2022-11-04 13:05:35 118

原创 Go语言-base三

第一章我们讨论操作系统线程及其调度时还说过,可以把内核对系统线程的调度简单的归纳为:在执行操作系统代码时,内核调度器按照一定的算法挑选出一个线程并把该线程保存在内存之中的寄存器的值放入CPU对应的寄存器从而恢复该线程的运行。万变不离其宗,系统线程对goroutine的调度与内核对系统线程的调度原理是一样的,实质都是通过保存和修改CPU寄存器的值来达到切换线程/goroutine的目的。

2022-11-04 13:00:21 68

原创 Go语言base二

在调度器概述一节我们提到过,所谓的goroutine调度,是指程序代码按照一定的算法在适当的时候挑选出合适的goroutine并放到CPU上去运行的过程。对这三大问题的解决构成了调度器的所有工作,因而我们对调度器的分析也必将围绕着它们所展开。第二章我们已经详细的分析了调度器的初始化以及goroutine的切换机制,本章将重点讨论调度器如何挑选下一个goroutine出来运行的策略问题,而剩下的与调度时机相关的内容我们将在第4~6章进行全面的分析。

2022-10-31 12:22:16 94

原创 Go语言base一

相信很多人都听说过Go语言天然支持高并发,原因是内部有协程(goroutine)加持,可以在一个进程中启动成千上万个协程。那么,它凭什么做到如此高的并发呢?那就需要先了解什么是并发模型。

2022-10-31 12:05:04 240

原创 线性和环形连接灯泡开灯问题

如果N栈灯排成一个圈,请问最少按下多少次开关,能让灯都亮起来 i为中间位置时,i号灯的开关能影响i-1,i,i+1,0号灯的开关能影响N-1,0和1位置的灯,N-1号灯能影响0,N-2和N-1位置的灯。如果N栈灯排成一条直线,请问最少按下多少次开关,能让灯都亮起来i为中间位置时,i号灯的开关能影响i-1,i,i+1,0号灯的开关只能影响0和1位置的灯N-1号灯只能影响N-2和N-1位置的灯。给定一个数组arr,长度为N,arr中的值不是0就是1.arr[i]表示第i栈灯的状态,0表示灭灯,1表示亮灯。

2022-10-30 21:15:35 59

秒杀系统代码代码仅供学习使用

秒杀系统代码代码仅供学习使用

2022-05-11

空空如也

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

TA关注的人

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