自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

博客

博客

  • 博客(66)
  • 收藏
  • 关注

原创 win10+CUDA11.2+cuDNN8.1+python3.8+tensorflow2.6.0环境配置

文章目录1. 基本知识1.1 显卡1.2 GPU1.3 CUDA1.4 cuDNN2. 显卡驱动安装3. CUDA安装及配置3.1 CUDA下载3.2 CUDA安装3.3 CUDA安装确认4. cuDNN下载及配置5. 环境变量配置6. tensorflow环境配置7. 测试1. 基本知识1.1 显卡 显卡(Video card,Graphics card)全称显示接口卡,又称显示适配器,是计算机最基本配置、最重要的配件之一。显卡作为电脑主机里的一个重要组成部分,是电脑进行数模信号转换的设备,承担输出

2022-03-16 21:23:19 7035 3

原创 分布式 RPC 框架HSF

HSF (High-speed Service Framework),高速服务框架,是在阿里巴巴内部广泛使用的分布式 RPC 服务框架。HSF 作为阿里巴巴的基础中间件,联通不同的业务系统,解耦系统间的实现依赖。HSF 从分布式应用的层面,统一了服务的发布/调用方式,从而帮助用户可以方便、快速的开发分布式应用,以及提供或使用公共功能模块。为用户屏蔽了分布式领域中的各种复杂技术细节,如:远程通讯、序列化实现、性能损耗、同步/异步调用方式的实现等。

2023-07-20 16:48:43 960 1

原创 消息中间件MetaQ

例如1M,几百K的消息 不推荐应用发送超过16K的消息,如果消息确实比较大,发送消息客户端有个配置,默认超过4K的消息开始压缩,消息到达订阅方之前会自动解压,压缩过程对用户透明,但是如果压缩过以后消息仍然较大,我们推荐应用对消息进行拆分,这样做的原因如下。超过重试次数,消息进入死信队列,并向用户报警。对于非常重要的消息,例如订单消息,业务方需要有重发补偿的机制,例如MetaQ服务短暂不可用,此时发往MetaQ的消息将失败,等到MetaQ服务恢复后,业务方可以将之前发送失败的消息重新补偿发送。

2023-07-20 11:23:03 520

原创 C++STL常用函数

注:总结C++STL常用函数,方便即时查询

2023-04-06 23:53:00 984 1

原创 大数取余(快速幂与龟速乘)

在某些情况下我们需要计算an%b的结果,但当n较大时,an的结果通常无法直接保存。下面介绍两种方法(循环取余和快速幂取余)直接计算an%b的结果,无需计算an。

2023-04-05 22:29:24 692

原创 设计LFU缓存结构

LRU 和LFU是两种著名的缓存淘汰算法。LRU 算法的淘汰策略是 Least Recently Used,也就是每次淘汰那些最久没被使用的数据;LFU 算法的淘汰策略是 Least Frequently Used,也就是每次淘汰那些使用次数最少的数据。LRU 算法的核心数据结构是使用哈希链表 LinkedHashMap,首先借助链表的有序性使得链表元素维持插入顺序,同时借助哈希映射的快速访问能力使得我们可以在 O(1) 时间访问链表的任意元素。

2023-04-03 21:22:14 516

原创 【中等】大餐计数

将deliciousness中每个美味程度出现的次数存储到map中。遍历该map,对于每个美味程度,计算与其匹配的美味程度(共22个)。如果该匹配项也在map中,再判断匹配项与源项是否一致,如果一致,按$\frac{n(n-1)}{2}$计算,如果不一致,按$n\times m$计算。其中$n$=map[源项],$m$=map[匹配项]。

2022-09-08 16:56:22 102

原创 常用排序算法

常用排序算法总结

2022-06-14 00:19:01 133

原创 PyQt5基本组件使用

pyqt5基本组件

2022-06-10 21:10:34 278

原创 PyQt5制作一个简单的登录界面

PyQt

2022-06-08 21:32:01 2144

原创 VSCode C++ :ERROR: Unable to start debugging. GDB exited unexpectedly.

ERROR: Unable to start debugging. GDB exited unexpectedly. Unexpected GDB output from command “-exec-run“

2022-06-07 16:42:44 5982 10

原创 Socket实现远程方法调用(RMI)

文章目录1.题目描述2. 在服务器端实现词典2.1 实现词典接口2.2 实现词典类3. UDP协议(DatagramSocket)实现远程词典调用3.1 发送端3.2 接收端3.3远程词典调用4. TCP协议(Socket)实现远程词典调用4.1 客户端4.2 服务器端4.3 远程词典调用5. 服务器端使用多线程5.1 客户端5.2 服务器端多线程实现5.3 远程词典调用6. 总结1.题目描述实现一个远程调用词典翻译的例程,题目如下:2. 在服务器端实现词典2.1 实现词典接口public in

2022-05-28 14:23:03 554

原创 使用 LaTex+VSCode+git 进行论文格式管理以及版本控制

文章目录前言TeX Live下载及安装VSCode安装及配置LaTeX Workshop安装tex文件编译外部PDF查看器(SumatraPDF)使用git进行版本控制准备工作SSH连接从远程克隆前言LaTeX 作为一种强大的排版系统,对于理工科,特别是公式比较多的专业,其重要性自不必多说。而选择一个比较好的编译器是很重要的,至少对笔者而言是如此。TeX Live自带编辑器TeXworks editor,但是其编译速度比较慢,并且页面不是很美观,最让程序猿们无法忍受的是:没有代码自动补全功能(这还用个

2022-05-27 22:22:16 3558

原创 利用git进行word文档的版本管理

文章目录前言准备配置文件开始写作最后前言在进行大文件传输或修改的时候总会遇到存储或传输压力大的问题,而Git在版本迭代方面非常出色。在撰写毕业论文或其他大型论文时,一篇文章通常需要经过反复修改,往往我们通过复制文件对其重命名来进行版本的标识。这样不仅浪费存储空间,同时,文件管理起来也相当不便。Git作为常用的版本分布式管理软件有效地解决了这一问题,让我们可以对每次改动进行有效的管理;Pandoc是常用的标记语言转换工具,可实现不同标记语言间的转换(HTML、Word、Ebooks、PDF、Te

2022-05-25 17:22:11 9219 1

原创 IntelliJ IDEA使用git进行版本控制

文章目录git原理项目上传至github克隆github上已有项目你需要做好如下准备工作:安装git注册一个github账户安装IntelliJ IDEAgit原理在进行大文件传输或修改的时候总会遇到存储或传输压力大的问题,而Git在版本迭代方面非常出色。Git存储时会把文件拆成若干个部分,并计算各个部分的哈希值,利用这些构建起与文件对应的有向无环图(DAG),DAG的根节点也就是该文件的哈希值。这样的好处十分明显:如果需要修改文件,那么只需要修改少数图中节点即可;需要分享文件,等价于分

2022-05-24 21:08:10 565

原创 PyChram使用git进行版本控制

你需要做好如下准备工作:安装git注册一个github账户安装PyChram(我安装的是专业版,社区版界面略有不同,但区别不大)项目上传至githubgit—GitHub—Share Project on GitHub如果是第一次使用这个功能,会弹出来一个链接,让你把github账户与PyCharm进行绑定。此时继续上传项目可能会出现如下错误:Successfully created project 'text' on GitHub, but initial commit failed

2022-05-24 20:21:02 532

原创 【困难】乘法表中第k小的数

题目描述几乎每一个人都用 乘法表。但是你能在乘法表中快速找到第k小的数字吗?给定高度m 、宽度n 的一张 m * n的乘法表,以及正整数k,你需要返回表中第k 小的数字。例 1:输入: m = 3, n = 3, k = 5输出: 3解释: 乘法表:1 2 32 4 63 6 9第5小的数字是 3 (1, 2, 2, 3, 3).例 2:输入: m = 2, n = 3, k = 6输出: 6解释: 乘法表:1 2 32 4 6第6小的数字是 6 (1, 2, 2,

2022-05-18 14:32:36 169

原创 【中等】序列化和反序列化二叉搜索树

题目描述序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。设计一个算法来序列化和反序列化 二叉搜索树 。 对序列化/反序列化算法的工作方式没有限制。 您只需确保二叉搜索树可以序列化为字符串,并且可以将该字符串反序列化为最初的二叉搜索树。编码的字符串应尽可能紧凑。示例 1:输入:root = [2,1,3]输出:[2,1,3]示例 2:输入:root = []输出:[]提示:树中节点数范

2022-05-11 23:15:08 143

原创 【困难】猫和老鼠

题目描述两位玩家分别扮演猫和老鼠,在一张 无向 图上进行游戏,两人轮流行动。图的形式是:graph[a] 是一个列表,由满足 ab 是图中的一条边的所有节点 b 组成。老鼠从节点 1 开始,第一个出发;猫从节点 2 开始,第二个出发。在节点 0 处有一个洞。在每个玩家的行动中,他们 必须 沿着图中与所在当前位置连通的一条边移动。例如,如果老鼠在节点 1 ,那么它必须移动到 graph[1] 中的任一节点。此外,猫无法移动到洞中(节点 0)。然后,游戏在出现以下三种情形之一时结束:如果猫和老鼠

2022-05-10 13:24:50 442

原创 【中等】数组中重复的数据

题目描述给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数,并以数组形式返回。你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题。示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[2,3]示例 2:输入:nums = [1,1,2]输出:[1]示例 3:输入:nums = [1]输出:[]提示:n == nums.

2022-05-08 21:17:59 1049

原创 【困难】标签验证器

题目描述给定一个表示代码片段的字符串,你需要实现一个验证器来解析这段代码,并返回它是否合法。合法的代码片段需要遵守以下的所有规则:1.代码必须被合法的闭合标签包围。否则,代码是无效的。2.闭合标签(不一定合法)要严格符合格式:<TAG_NAME>TAG_CONTENT</TAG_NAME>。其中,<TAG_NAME>是起始标签,</TAG_NAME>是结束标签。起始和结束标签中的 TAG_NAME 应当相同。当且仅当 TAG_NAME 和 TAG_CON

2022-05-02 14:22:57 118

原创 Java数组、字符串与集合

1. 数组求长度int len = arr.length;数组转列表// data为int[]类型的数组List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList());// Integer[]数组 ;利用asList方法(这种方法不适用于基础类型的数组)List<String> lis=Arrays.asList(arr) // arr为String[]数组ArrayL

2022-05-01 15:11:54 2583

原创 【中等】建立四叉树——(分治)

题目描述给你一个 n * n 矩阵 grid ,矩阵由若干 0 和 1 组成。请你用四叉树表示该矩阵 grid 。你需要返回能表示矩阵的 四叉树 的根结点。注意,当 isLeaf 为 False 时,你可以把 True 或者 False 赋值给节点,两种值都会被判题机制 接受 。四叉树数据结构中,每个内部节点只有四个子节点。此外,每个节点都有两个属性:  val:储存叶子结点所代表的区域的值。1 对应 True,0 对应 False;  isLeaf: 当这个节点是一个叶子结点时为 True,如

2022-04-29 15:03:49 512

原创 水塘抽样算法(Reservoir Sampling Algorithm)

文章目录应用场景算法步骤算法原理代码实现应用场景主要用于解决大数据流中的随机抽样问题,即:当内存有限,数据长度很大,甚至未知,那么如何从中随机选取k个数据,并且要求是等概率。算法步骤水塘抽样的步骤是,只遍历一次,每次都考虑一个问题:当前元素是否被选中,选中后替换之前选中的哪一个元素。采样过程:step1:首先将前k个元素全部选取。step2:对于第i个元素(i>k),以概率k/i来决定是否保留该元素,如果保留该元素的话,则随机丢弃掉原有的k个元素中的一个(即原来某个元素被丢掉的概率是1/

2022-04-25 20:43:09 2692 2

原创 【中等】随机数索引

题目描述给你一个可能含有 重复元素 的整数数组 nums ,请你随机输出给定的目标数字 target 的索引。你可以假设给定的数字一定存在于数组中。实现 Solution 类:Solution(int[] nums) 用数组 nums 初始化对象。int pick(int target) 从 nums 中选出一个满足 nums[i] == target 的随机索引 i 。如果存在多个有效的索引,则每个索引的返回概率应当相等。示例:输入["Solution", "pick", "pick", "

2022-04-25 19:43:48 246

原创 【困难】安装栅栏

题目描述在一个二维的花园中,有一些用 (x, y) 坐标表示的树。由于安装费用十分昂贵,你的任务是先用最短的绳子围起所有的树。只有当所有的树都被绳子包围时,花园才能围好栅栏。你需要找到正好位于栅栏边界上的树的坐标。解题思路这是计算几何学中经典的寻找凸包问题,可以使用Graham算法或Jarvis算法进行求解。但需要注意的是,经典的凸包并不包含凸组合(两点连线上的点称为这两点的凸组合),但此题中,需要输出凸组合,所以需要对这种边界问题考虑周全。Graham算法class Solution {

2022-04-24 00:47:08 133

原创 【中等】旋转函数

题目描述给定一个长度为 n 的整数数组 nums 。假设 arrk 是数组 nums 顺时针旋转 k 个位置后的数组,我们定义 nums 的 旋转函数 F 为:F(k) = 0 * arrk[0] + 1 * arrk[1] + … + (n - 1) * arrk[n - 1]返回 F(0), F(1), …, F(n-1)中的最大值 。生成的测试用例让答案符合 32 位 整数。示例 1:输入: nums = [4,3,2,6]输出: 26解释:F(0) = (0 * 4) + (1

2022-04-22 19:37:34 418

原创 整数x的二进制表示有多少位1 以及 判断质数

判断质数普通方法private boolean isPrime(int x) { if (x < 2) { return false; } for (int i = 2; i * i <= x; ++i) { if (x % i == 0) { return false; } } return true;

2022-04-21 16:29:08 1129

原创 【中等】文件的最长绝对路径

题目描述假设有一个同时存储文件和目录的文件系统。下图展示了文件系统的一个示例:这里将 dir 作为根目录中的唯一目录。dir 包含两个子目录 subdir1 和 subdir2 。subdir1 包含文件 file1.ext 和子目录 subsubdir1;subdir2 包含子目录 subsubdir2,该子目录下包含文件 file2.ext 。在文本格式中,如下所示(⟶表示制表符):dir⟶ subdir1⟶ ⟶ file1.ext⟶ ⟶ subsubdir1⟶ subdir2⟶ ⟶

2022-04-20 14:56:29 180

原创 【中等】寻找峰值

题目描述峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入:nums = [1,2,1,3,5,6,4]输出:1 或 5 解释

2022-04-17 17:04:23 157

原创 【中等】寻找旋转排序数组中的最小值

题目描述已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。给你一个元素值 互不相同 的数组

2022-04-17 16:03:00 55

原创 正则表达式

基本正则表达式模式最简单的正则表达式是由简单字符构成的一个序列。例如,要搜索wood,只要键入/wood/这个正则表达式即可。通常,我们在正则表达式的前后加斜线“/”,以便区分什么是正则表达式,什么是模式。但切记,这只是书写习惯,在程序语言中使用正则表达式时,无需加“/”,例如s.split("wood")而非s.split("/wood/")。正则表达式是区分大小写的。/s/ 和 /S/ 的含义是不同的方括号“[]”表示析取,例如:与/[wW]/匹配的模式中或者包含w,或者包含W/[wW]o

2022-04-17 15:14:34 2768

原创 【中等】迷你语法分析器

题目描述给定一个字符串 s 表示一个整数嵌套列表,实现一个解析它的语法分析器并返回解析的结果 NestedInteger 。列表中的每个元素只可能是整数或整数嵌套列表示例 1:输入:s = “324”,输出:324解释:你应该返回一个 NestedInteger 对象,其中只包含整数值 324。示例 2:输入:s = “[123,[456,[789]]]”,输出:[123,[456,[789]]]解释:返回一个 NestedInteger 对象包含一个有两个元素的嵌套列表:

2022-04-16 20:29:09 305 2

原创 【困难】最大回文数乘积

题目描述给定一个整数 n ,返回 可表示为两个 n 位整数乘积的 最大回文整数 。因为答案可能非常大,所以返回它对 1337 取余 。示例 1:输入:n = 2输出:987解释:99 x 91 = 9009, 9009 % 1337 = 987示例 2:输入: n = 1输出: 9提示:1 <= n <= 8解题思路首先说一下我自己的思路(很蠢的思路。。。最后居然超时了)这个题我一开始就剑走偏锋了,因为我觉得java中的常见类型显然无法保存16位的数(最大的回文数)

2022-04-16 18:48:22 576

原创 【中等】O(1)时间插入、删除和获取随机元素

题目描述实现RandomizedSet 类:RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true ;否则,返回 false 。int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。每个元素应该有

2022-04-13 13:38:43 77

原创 【中等】统计各位数字都不同的数字个数

题目描述给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0<=x<10n0 <= x < 10^n0<=x<10n 。示例 1:输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外, 在 0 ≤ x < 100 范围内的所有数字。 示例 2:输入:n = 0输出:1提示:0 <= n <= 8解题思路n为0时,只有0一个数字,返回1;n不为0时,首位有9

2022-04-11 11:16:11 380

原创 【中等】最小高度树

题目描述树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。给你一棵包含 n 个节点的树,标记为 0 到 n - 1 。给定数字 n 和一个有 n - 1 条无向边的 edges 列表(每一个边都是一对标签),其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间存在一条无向边。可选择树中任何一个节点作为根。当选择节点 x 作为根节点时,设结果树的高度为 h 。在所有可能的树中,具有最小高度的树(即,min(h))被称为 最

2022-04-10 12:19:35 200

原创 【简单】旋转字符串

题目描述给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。s 的 旋转操作 就是将 s 最左边的字符移动到最右边。例如, 若 s = ‘abcde’,在旋转一次之后结果就是’bcdea’ 。示例 1:输入: s = "abcde", goal = "cdeab"输出: true示例 2:输入: s = "abcde", goal = "abced"输出: false提示:1 <= s.length, goal.leng

2022-04-10 08:57:20 420

原创 【简单】唯一摩尔斯密码词

题目描述国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如:‘a’ 对应 “.-” ,‘b’ 对应 “-…” ,‘c’ 对应 “-.-.” ,以此类推。为了方便,所有 26 个英文字母的摩尔斯密码表如下:[“.-”,“-…”,“-.-.”,“-…”,“.”,“…-.”,“–.”,“…”,“…”,“.—”,“-.-”,“.-…”,“–”,“-.”,“—”,“.–.”,“–.-”,“.-.”,“…”,“-”,“…-”,“…-”,“.–”,“-…-”,“-.–

2022-04-10 08:24:24 4572

原创 【简单】两个列表的最小索引总和

题目描述假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设答案总是存在。示例 1:输入: list1 = ["Shogun", "Tapioca Express", "Burger King", "KFC"],list2 = ["Piatti", "The Grill at Torrey Pines", "Hungr

2022-04-09 18:57:07 119

空空如也

空空如也

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

TA关注的人

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