- 博客(38)
- 资源 (33)
- 收藏
- 关注
原创 leetcode *剑指 Offer 14- I. 剪绳子 & *343. 整数拆分(2020.7.30)
【题目】*343. 整数拆分给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。【解题思路1】动态规划对于的正整数 n,当 n≥2 时,可以拆分成至少两个正整数的和。令 k 是拆分出的第一个正整数
2020-07-30 12:12:57 194
原创 leetcode **LCP 13. 寻宝(待研究)(2020.7.29)
【题目】**LCP 13. 寻宝我们得到了一副藏宝图,藏宝图显示,在一个迷宫中存在着未被世人发现的宝藏。迷宫是一个二维矩阵,用一个字符串数组表示。它标识了唯一的入口(用 ‘S’ 表示),和唯一的宝藏地点(用 ‘T’ 表示)。但是,宝藏被一些隐蔽的机关保护了起来。在地图上有若干个机关点(用 ‘M’ 表示),只有所有机关均被触发,才可以拿到宝藏。要保持机关的触发,需要把一个重石放在上面。迷宫中有若干个石堆(用 ‘O’ 表示),每个石堆都有无限个足够触发机关的重石。但是由于石头太重,我们一次只能搬一个石头到
2020-07-29 09:09:26 460 1
原创 leetcode **329. 矩阵中的最长递增路径(待研究)(2020.7.26)
【题目】**329. 矩阵中的最长递增路径给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums = [ [9,9,4], [6,6,8], [2,1,1]] 输出: 4 解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums = [ [3,4,5], [3,2,6], [2,2,1]] 输出: 4 解释: 最
2020-07-26 10:17:22 187
原创 leetcode **410. 分割数组的最大值(2020.7.25)
【题目】**410. 分割数组的最大值给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意:数组长度 n 满足以下条件:1 ≤ n ≤ 10001 ≤ m ≤ min(50, n)示例:输入:nums = [7,2,5,10,8]m = 2输出:18解释:一共有四种方法将nums分割为2个子数组。其中最好的方式是将其分为[7,2,5] 和 [10,8],因为此时这两个子数组各自的和的最大值
2020-07-25 11:14:52 176 1
原创 leetcode **312. 戳气球(2020.7.19)
【题目】**312. 戳气球有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。如果你戳破气球 i ,就可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相邻的两个气球的序号。注意当你戳破了气球 i 后,气球 left 和气球 right 就变成了相邻的气球。求所能获得硬币的最大数量。说明:你可以假设 nums[-1] = nums[n] =
2020-07-19 10:23:56 193
原创 leetcode **97. 交错字符串(2020.7.18)
【题目】**97. 交错字符串给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”输出: true示例 2:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc”输出: false【解题思路1】动态规划双指针法的问题模拟示例1就知道了,双指针法示例1会输出false如果 |s1| + |s2| ≠ |
2020-07-18 09:52:32 172
原创 Swift5 16.Automatic Reference Counting
目录Automatic Reference CountingAutomatic Reference Counting
2020-07-16 16:03:14 322
原创 leetcode *785. 判断二分图(2020.7.16)
【题目】*785. 判断二分图给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: graph[i] 中不存在i,并且graph[i]中没有重复的值。示例 1:输入: [[1,3], [0
2020-07-16 08:57:56 212
原创 Swift5 13.类型转换,嵌套类型,Extensions
目录类型转换检查类型:isDowncasting:as类型转换为Any和AnyObject嵌套类型引用嵌套类型(待研究)Extensions计算属性InitializersMethodsSubscripts嵌套类型类型转换您可以将类型转换与类和子类的层次结构一起使用,以检查特定类实例的类型,并将该实例转换为相同层次结构中的另一个类。class MediaItem { var name: String init(name: String) { self.name = na
2020-07-15 18:17:39 255
原创 Swift5 12.错误处理
目录Error Handling表示和抛出错误处理错误使用投掷函数传播错误:throws使用Do-Catch处理错误将错误转换为可选值:try?禁用错误传播:try!指定清理措施(待研究)Error Handling错误处理是响应程序错误状态并从错误状态中恢复的过程。表示和抛出错误enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) ca
2020-07-15 17:12:38 263
原创 Swift5 11.Deinitialization, Optional Chaining
目录DeinitializationOptional Chaining可选链接作为强制展开的替代方法为Optional Chaining定义Model Classes通过可选链接访问properties通过可选链接调用Methods通过可选链接访问subscriptsLinking Multiple Levels of Chaining链接具有可选返回值的MethodsDeinitialization当不再需要实例时,Swift会自动释放其实例,以释放资源。通常,在实例被释放后,无需执行手动清理。但是,
2020-07-15 11:54:47 155
原创 leetcode *96. 不同的二叉搜索树(2020.7.15)
【题目】*96. 不同的二叉搜索树给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2
2020-07-15 09:09:54 261
原创 Swift5 10.初始化Initialization(待深究)
目录Initialization设置存储属性的初始值初始化器Initializers默认属性值Default Property Values自定义初始化初始化参数参数名称和参数标签不带参数标签的初始化参数可选属性类型在初始化期间分配常量属性默认初始化器结构类型的成员初始化器Initializer Delegation for Value Types类继承和初始化指定的初始化程序和便利性初始化程序指定和便捷初始化程序的语法类类型的初始化程序委托两阶段初始化(待研究)初始化程序的继承和覆盖自动初始化程序继承指定
2020-07-14 21:55:13 579
原创 Swift5 9.Methods, 下标Subscripts, 继承Inheritance
目录MethodsInstance Methods从实例方法中修改值类型 mutatingMutating methods 中分配给selfType Methods下标Subscript下标用法Type SubscriptsMethodsMethods是与特定类型关联的函数。类,结构和enumerations都可以定义实例方法,这些实例方法封装了用于处理给定类型的实例的特定任务和功能。类,结构和枚举也可以定义与类型本身关联的类型方法。Instance Methods实例方法是属于特定类,结构或枚举的
2020-07-14 17:43:44 311
原创 leetcode *120. 三角形最小路径和(2020.7.14)
【题目】*120. 三角形最小路径和给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么
2020-07-14 09:37:37 180
原创 Swift5 8.Properties
目录PropertiesStored PropertiesLazy Stored PropertiesComputed Properties: get, setProperty ObserversProperty Wrappers几种init方法Projecting a Value From a Property Wrapper:$全局和局部变量Type Properties(待研究)PropertiesStored Propertiesstruct FixedLengthRange { va
2020-07-13 21:11:20 227
原创 Swift5 7.Enumerations, Structures and Classes
目录Enumerationsenum语法遍历enumAssociated ValuesRaw ValuesImplicitly Assigned Raw ValuesRecursive EnumerationsStructures and Classesstruct和class的共同点和区别struct和enum是value type值类型的class是引用类型指针Enumerationsenum语法enum CompassPoint { case north case south
2020-07-13 18:42:09 272
原创 Swift5 6.Closure
目录Closure闭包表达式(各种省略方式)尾随闭包捕获上下文的value函数和闭包是引用类型Escaping Closures(关于self的问题待研究)Autoclosures(待研究)Closure全局函数是具有名称且不捕获任何值的闭包。嵌套函数是具有名称的闭包,可以从其闭包函数捕获值。闭包表达式是用轻量级语法编写的未命名的闭包,可以从其周围的上下文中捕获值。Swift的闭包表达式特点:从上下文推断参数和返回值类型单表达式闭包的隐式返回速记参数名称尾随闭包语法闭包表达式(各
2020-07-13 15:04:04 262
原创 Swift5 5.函数Function
目录FunctionFunction具有多个返回值的函数返回Optional内部外部名称: Argument Labels and Parameter Names默认参数值可变参数In-Out 参数Function Types使用Function TypesFunction Types作为另一个函数的参数类型Function Types作为返回类型嵌套函数FunctionFunction只用return一行编写的任何函数都可以省略return。// 没有参数func sayHelloWorld()
2020-07-12 20:12:32 394
原创 Swift5 4.Control Flow: for in, While, Switch, 条件语句if, switch, where
目录Control Flowfor in 循环While 循环条件语句ifswitchValue BindingswhereControl Transfer StatementsLabeled Statements(待研究)Early Exit:guard(待研究)检查API可用性(待研究)Control Flowfor in 循环for index in 1...5 { print("\(index) times 5 is \(index * 5)")}// index是一个常数无需声明
2020-07-12 16:52:15 246
原创 Swift5 3.Collection: Array, Set, Dictionary
目录CollectionArraySetDictionaryCollection三种collection: array有序集合, set唯一值的无序集合, dictionarie键-值关联的无序集合。Arrayvar arr = Array<Int> // 空数组,两种方式,一般采用[]var someInts = [Int]() // 简写someInts.append(3) // someInts now contains 1 value of type IntsomeInt
2020-07-12 12:00:08 290
原创 leetcode **174. 地下城游戏(2020.7.12)
【题目】**174. 地下城游戏一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值
2020-07-12 09:29:29 212
原创 Swift5 2.基本运算符 & 字符串Strings和字符Characters
目录基本运算符元组之间的比较Nil-Coalescing OperatorRange运算符逻辑判断字符串Strings和字符Characters多行字符串文字用三引号 """转义字符串Extended String Delimiters(待研究)初始化字符串字符characterString Interpolation: \\().count访问和修改String子串比较字符串Unicode编码 & UTF-16(待研究)基本运算符元组之间的比较两个元组具有相同的类型和相同数量的值,则可以比较
2020-07-11 18:37:44 646
原创 leetcode **315. 计算右侧小于当前元素的个数(逆序数对数)(待深究)(2020.7.11)
【题目】**315. 计算右侧小于当前元素的个数给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例:输入: [5,2,6,1]输出: [2,1,1,0] 解释:5 的右侧有 2 个更小的元素 (2 和 1).2 的右侧仅有 1 个更小的元素 (1).6 的右侧有 1 个更小的元素 (1).1 的右侧有 0 个更小的元素.【解题思路1】冒泡排序/暴力算法
2020-07-11 10:07:20 208
原创 Swift5 1.基础介绍
目录基础介绍常量let & 变量var注释分号整数浮点值类型推断 & Type Safety数字数值类型转换类型别名typealias布尔值 Bool元组 TuplesOptionals错误处理Assertions & Preconditions(待研究)AssertionsEnforcing Preconditions基础介绍常量let & 变量varlet maximumNumberOfLoginAttempts = 10 // 常量的值设定后不能更改var c
2020-07-10 19:27:30 343
原创 leetcode *309. 最佳买卖股票时机含冷冻期(2020.7.10)
【题目】*309. 最佳买卖股票时机含冷冻期给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3 解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]【解题思路1】动态规划对买入定义为负收
2020-07-10 08:59:20 92
原创 leetcode *面试题 17.13. 恢复空格(字典树、待深究)(2020.7.9)
【题目】*面试题 17.13. 恢复空格哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!“已经变成了"iresetthecomputeritstilldidntboot”。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典dictionary,不过,有些词没在词典里。假设文章用sentence表示,设计一个算法,把文章断开,要求未识别的字符最少,返回未识别的字符
2020-07-09 09:48:52 261
原创 leetcode *63. 不同路径 II(滚动数组)(2020.7.6)
【题目】*63. 不同路径 II一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[ [0,0,0], [0,1,0], [0,0,0]]输出: 2解释:3x3 网
2020-07-06 10:32:53 338
原创 leetcode **44. 通配符匹配(待研究)(2020.7.5)
【题目】**44. 通配符匹配给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "aa" 整个字符串。示例 2:输
2020-07-05 12:54:03 195
原创 leetcode **32. 最长有效括号(2020.7.4)
【题目】**32. 最长有效括号给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"【解题思路1】动态规划public class Solution { public int longestValidParentheses(String s) { int maxans =
2020-07-04 11:01:38 251
原创 leetcode *378. 有序矩阵中第K小的元素(2020.7.2)
【题目】*378. 有序矩阵中第K小的元素给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。示例:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,返回 13。提示:你可以假设 k 的值永远是有效的,1 ≤ k ≤ n2 。【解题思路1】暴力法转化为一维数组,排序后返回下标 k-1 的元素clas
2020-07-02 11:21:02 260
原创 leetcode *718. 最长重复子数组(2020.7.1)
【题目】*718. 最长重复子数组给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。示例 1:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出: 3解释: 长度最长的公共子数组是 [3, 2, 1]。说明:1 <= len(A), len(B) <= 10000 <= A[i], B[i] < 100【解题思路1】动态规划以[1, 2, 3, 2, 1]和[3,2,1,4]为例比较A[i] 、B[j],如果不
2020-07-01 11:42:59 193
算法设计与分析期末复习笔记+期末习题解答
2020-05-19
算法设计与分析(Algorithm Design )课后习题作业
2020-05-19
信息安全数学基础教程 课堂笔记+例题+期中期末题
2020-05-19
基于php的选课系统 ThinkPHP+MySQL
2019-11-27
汇编语言实验五小学生算术练习软件
2018-02-03
操作系统实验六 磁盘调度算法
2018-02-03
操作系统实验四 动态分区分配算法
2018-02-03
操作系统实验三 预防进程死锁的银行家算法
2018-02-03
数据结构实验(约瑟夫环、哈弗曼树、表达式求值、树的遍历、图的遍历)
2018-02-02
《Linux环境编程》编程题答案及实验报告
2018-02-02
操作系统实验五 虚拟内存页面置换算法
2018-02-02
操作系统实验二 时间片轮转RR进程调度算法
2018-02-02
操作系统实验一 先来先服务FCFS和短作业优先SJF进程调度算法
2018-02-02
TCP/IP实验基于TCP和UDP的应用编程(内含源代码、调试文件和实验报告)
2018-02-02
《TCP/IP:协议分析与应用编程》课后题答案
2018-02-02
Python+Flask+sqlite实现的选课系统
2017-10-17
交通灯控制设计multism12
2017-08-18
Java语言程序设计(基础篇)课后习题答案
2017-07-03
基于php的选课系统 ThinkPHP+MySQL(实现非常完善)
2017-06-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人