自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python读取文件路径错误怎么办

遇到一个读取文件路径的错误,首先是替换成绝对路径没有解决,其次是发现与Linux系统中读取路径不同Windows中python读取路径要用“\”,使用此方法成功解决问题。

2023-03-24 20:49:07 737

原创 《Fundamantals of Software Architecture》 Q&A Part3

1.什么是掩盖资产反模式?尝试做出架构决策时会出现的第一个反模式是掩盖你的资产。当架构师由于担心你做出错误选择而避免或推迟做出架构决策时,就会出现这种反模式。2.有哪些技术可以避免电子邮件驱动的架构反模式?仅在电子邮件正文中提及决策的性质和上下文,并提供架构决策和相应详细信息的单个系统记录链接。3.Michael Nygard定义的识别具有重要架构意义的事物的5个因素是什么?会影响结构、非功能特性、依赖项、接口或构建技术的决策。4.架构决策记录的5个基本部分是什么?

2022-11-16 17:31:42 420

原创 《Fundamantals of Software Architecture》 Q&A Part2

1.列出分布式计算的8个谬误。网络是可靠的、零延迟、带宽是无限的、网络是安全的、拓扑结构从不改变、只有一个管理员、传输成本为0、网络是同构的。2.说出三个分布式架构拥有而单片架构所没有的挑战。分布式日志、分布式事务、契约维护和版本控制。3.什么是特征耦合?特征耦合是指两个都与同一个数据结构有关的模块发生的耦合。由于同时使用同一个数据结构,当数据结构变动时,必然影响这两个模块,从而增加模块间的依赖性,降低模块独立性。4.有哪些方法可以解决特征耦合问题?

2022-11-15 22:27:00 1160

原创 《Fundamantals of Software Architecture》 Q&A

1.定义软件架构的四个维度是什么?软件架构由结构、架构特征、架构决策和设计原则组成。2.架构决策和设计原则之间的区别是什么?设计原则和架构决策的不同之处在于,设计原则是指导原则,而不是必须遵守的规则。3.列出软件架构师的8个核心期望。指定架构决策、持续分析架构、掌握最新趋势、确保决策被遵守、丰富的经历和经验、具备业务领域知识、具备人际交往能力、了解并驾驭政治。4.软件架构的第一定律是什么?软件架构中的一切都是在做权衡。

2022-11-14 23:26:38 362

原创 机器学习 第3章 线性模型 (3.1&3.2)

3.1 基本形式线性模型试图学得一个通过属性的线性组合来进行预测的函数f(x)=w1x1+w2x2+...+wdxd+bf(x) =w_{1}x_{1}+w_{2}x_{2}+...+w_{d}x_{d}+bf(x)=w1​x1​+w2​x2​+...+wd​xd​+b向量形式为f(x)=wTx+bf(x)=w^{T}x+bf(x)=wTx+b其中w=(w1;w2;...;wd).w=(w_{1};w_{2};...;w_{d}).w=(w1​;w2​;...;wd​). www和bbb学

2022-03-16 23:23:21 825

原创 机器学习 第1章 绪论

机器学习第一章 绪论1.1引言1.2基本术语1.3 假设空间1.4 归纳偏好1.5 发展历程第一章 绪论1.1引言机器学习研究的内容,是关于在计算机上从数据产生“模型”的算法,即”学习算法“,有了学习算法,我们把经验数据提供给它,他就能基于这些数据产生模型;面对新的情况时,模型会给我们提供相应的判断。机器学习是研究关于“学习算法”的学问。1.2基本术语数据集:记录的集合示例或样本:关于一个事件或对象的描述属性或特征:反映事物或对象在某方面的表现或性质的事项属性值:属性上的取值属性空间、

2022-03-14 22:00:39 870

原创 LeetCode724. 寻找数组的中心下标

题目寻找数组的中心下标给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释:中心下标是 3 。左侧数之和 s

2022-01-24 15:30:47 106

原创 LeetCode66. 加一

题目加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]提示:1 <=

2022-01-24 14:44:10 185

原创 LeetCode1. 两数之和

题目两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4],

2022-01-24 13:47:52 79

原创 LeetCode739. 每日温度

题目每日温度请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出: [1,1,1,0]示例 3:输入: temperatures = [3

2022-01-19 16:44:12 162

原创 LeetCode496. 下一个更大元素 I

题目下一个更大元素 Inums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。对于每个 0 <= i < nums1.length ,找出满足 nums1[i] == nums2[j] 的下标 j ,并且在 nums2 确定 nums2[j] 的 下一个更大元素 。如果不存在下一个更大元素,那么本次查询的

2022-01-19 12:03:34 224

原创 LeetCode1020. 飞地的数量

题目飞地的数量给出一个二维数组 A,每个单元格为 0(代表海)或 1(代表陆地)。移动是指在陆地上从一个地方走到另一个地方(朝四个方向之一)或离开网格的边界。返回网格中无法在任意次数的移动中离开网格边界的陆地单元格的数量。示例 1:输入:[[0,0,0,0],[1,0,1,0],[0,1,1,0],[0,0,0,0]]输出:3解释:有三个 1 被 0 包围。一个 1 没有被包围,因为它在边界上。示例 2:输入:[[0,1,1,0],[0,0,1,0],[0,0,1,0],[0,0,0,

2022-01-18 18:13:21 278

原创 LeetCode200. 岛屿数量

题目岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0”,“0”],[“0”,“0”,“0”,“0”,“0”]]输出:1示例 2:输入:grid = [[“1”,“1

2022-01-18 00:06:23 87

原创 LeetCode150. 逆波兰表达式求值

题目逆波兰表达式求值根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入:tokens = [“2”,“1”,"+",“3”,"*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入:tokens = [“4”,“13”,“5”,"/",

2022-01-15 14:18:49 226

原创 LeetCode155. 最小栈

题目最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,n

2022-01-14 16:27:54 116

原创 LeetCode227. 基本计算器 II

题目基本计算器 II给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。示例 1:输入:s = “3+2*2”输出:7示例 2:输入:s = " 3/2 "输出:1示例 3:输入:s = " 3+5 / 2 "输出:5提示:1 <= s.length <= 3 * 105s 由整数和算符 (’+’, ‘-’, ‘*’, ‘/’) 组成,中间由一些空格隔开s 表示一个 有效表达式表达式中的所有整数都是非负整数,且在范围 [

2022-01-14 14:25:41 112

原创 LeetCode20. 有效的括号

题目有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:true提示:1 <= s

2022-01-14 11:13:42 2632

原创 LeetCode142. 环形链表 II

题目环形链表 II给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1

2022-01-13 18:08:47 84

原创 LeetCode141. 环形链表

题目环形链表给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输

2022-01-13 17:23:51 98

原创 LeetCode876. 链表的中间结点

题目链表的中间结点给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.nex

2022-01-13 16:55:53 44

原创 LeetCode19. 删除链表的倒数第 N 个结点

题目给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <= n <= sz进阶:你能尝试使用一趟扫描实现吗?

2022-01-13 15:23:34 47

原创 LeetCode147. 对链表进行插入排序

题目对链表进行插入排序插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3输出: 1->2-

2022-01-12 17:42:05 55

原创 LeetCode21. 合并两个有序链表

题目合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列代

2022-01-12 16:20:06 62

原创 LeetCode148. 排序链表

题目排序链表给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围 [0, 5 * 104] 内-105 <= Node.val <= 105进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行

2022-01-12 15:52:07 50

原创 LeetCode138. 复制带随机指针的链表

题目复制带随机指针的链表给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --

2022-01-11 11:43:39 46

原创 LeetCode234. 回文链表

题目回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。示例 1:输入:head = [1,2,2,1]输出:true示例 2:输入:head = [1,2]输出:false提示:链表中节点数目在范围[1, 105] 内0 <= Node.val <= 9进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?代码# Definition for singly-linked lis

2022-01-11 10:34:42 110

原创 LeetCode328. 奇偶链表

题目奇偶链表给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL示例 2:输入: 2->1->3->5->6

2022-01-11 09:58:22 57

原创 LeetCode203.移除列表元素

203. 移除链表元素题目代码题目给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]提示:列表中的节点数目在范围 [0, 104] 内1 <=

2022-01-10 20:35:48 412

原创 LeetCode206. 反转链表

LeetCode206. 反转链表题目:206. 反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这

2022-01-10 17:32:54 257

原创 LeetCode 707. 设计链表

链表LeetCode 707. 设计链表题目代码.LeetCode 707. 设计链表题目LeetCode 707. 设计链表设计链表设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值

2022-01-10 16:33:33 99

原创 csp 201912-1 报数

题目:解题思路:设置四个数组记录甲乙丙丁跳过的次数,读入报的次数(报的次数和跳过次数之和相加才是总的次数),每累加一个次数先判断是哪个人报的并判断是否是跳过的数字,若符合条件则在把他的数组该数字的下标设为一,最后统计累加各数组为一的个数即为甲乙丙丁跳过的次数。此题虽然说n<=666,但是数组取大一点才能通过所有测试样例,n只是报数的次数,加上跳过的次数才是总的次数.#include...

2020-01-24 13:49:03 231

原创 CSP 201509-2 日期计算

CSP 201509-2 日期计算问题描述:解题思路:为了方便计算,设置一个数组用来存储每一个月的天数,而把每个月和之前月份经历的天数合并起来存储到数组里可以方便比较从而更容易确定是哪一个月。读入年份和天数后要对是否是闰年进行判断,然后再将读入的天数和数组里面的天数进行比较,可以设置一个循环,当读入的天数小于或等于当前数组里面的天数并大于数组里前一个数的天数时结束循环,此时输出数组的下标...

2020-01-24 12:35:36 168

原创 CSP题解 201409-2 画图

解题思路:利用一个二维数组表示平面直角坐标系,当被涂上颜色时,该坐标的值置为一,利用一个结构体数组存储每一个矩形的左下角和右上角的坐标。遍历每个矩形,利用两层for循环,内层用来表示x坐标的变化,外层表示y坐标的变化,就能够把每个矩形的被涂上的部分置为1。最后遍历直角坐标系的二维数组就能得到被涂上颜色有多少个点了。#include"cstdio"int a[100][100];struc...

2019-11-24 20:13:37 145

原创 CSP认证 201312-2

#include"cstdio"char ISBN[13];int main(){ int sum=0,num=1; for(int i=0;i<13;i++) { scanf("%c",&ISBN[i]); } for(int i=0;i<11;i++) { if(ISBN[i]=='-') continue; else { ...

2019-11-09 17:02:07 158

原创 CSP认证 201712-1

解题思路:由题意可知,这里的最小差值可以是不相邻的两个数的差值,因此我们先将所有的数按从小到大的顺序进行排序,然后再用另一个数组存储排序后相邻两个数的差值,再对这个存储了差值的数组进行排序,最终此数组第一个数就是最小差值,输出这个数。代码:#include"cstdio"#include"math.h"int a[1001];int b[1001];int main(){ in...

2019-11-04 15:00:34 119

原创 CSP认证 201709-1

解题思路:先求出能买多少个五瓶的(买五瓶送三瓶最划算),再用总的减去五瓶一起买的次数乘以五加上买五瓶送的。之后再减去三瓶一起买的次数乘以三加上买三瓶送的,之后再算出一瓶一瓶买的。它们总的个数就是能买到的最多的瓶数。代码:#include"cstdio"int main(){ int N,n; int five,three,add1,add2,add3; scanf("%d",&a...

2019-11-04 14:41:15 117

原创 CSP认证 201612-1

题目思路:先把数据用数组存储并进行排序。取数组中间的数为中间数,利用for循环寻找小于中间数的数用left变量存储,大于中间数的数用right变量存储。如果left变量的值等于right变量的值则中间数存在并且为数组中间的数,否则中间数不存在。#include"cstdio"int a[1001];int main(){ int n; int left=0; int right=...

2019-11-03 17:14:24 114

原创 CSP认证题解 201609-1

思路分析:先用一个数组保存每两个相邻的数之间的绝对值,然后对这个数组进行排序,求这个数组的最后一个数与第一个数的差就得到了最大的波动值。代码:#include"cstdio"#include"math.h"int a[1001];int b[1001];int main(){ int n; int l; int temp; scanf("%d",&n); for...

2019-11-03 16:48:13 125

原创 CSP认证201604-1 试题名称: 折点计数

试题编号: 201604-1试题名称: 折点计数时间限制: 1.0s内存限制: 256.0MB问题描述:   给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。  给定n个整数a1, a2, …, an表示销售量,请...

2019-10-28 17:19:30 186

原创 CSP题解201512-1 数位之和

csp认证 201512-1题目:题解:#include"cstdio"long int n=0;long int count=0;long int b=0;int num=0;int a[11];int main(){ scanf("%ld",&n); b=n;do{ count++;}while(n/=10);for(int i=0;i<c...

2019-10-28 16:53:40 119

空空如也

空空如也

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

TA关注的人

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