自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从UIImage创建CMSampleBuffer

使用 sampleBufferFromUIImage 即可-(CMSampleBufferRef)sampleBufferFromUIImage:(UIImage *)image { CVPixelBufferRef pb = [self CVPixelBufferFromUIImage:image]; return [self sampleBufferFromCVPixelBuffer:pb];}-(CMSampleBufferRef)sampleBufferFromCVPixelBuffer:

2021-12-30 11:20:02 1473

原创 在Mac OS上模拟DOS

下载并安装DOSBox,DOSBox官网下载debug等工具;也可到我的百度网盘, 提取码: 3fue将debug等工具放到一个指定目录D(我的放在~/study_asm下)。运行DOSBox执行 mount c 目录D (我的是 mount c ~/study_asm)执行 c: 现在就可以使用 debug等工具了。...

2021-12-10 14:24:01 796 1

原创 【LeetCode 773】滑动谜题

/*难度:困难在一个2x3的板上有5块砖瓦,用数字1~5来表示,以及一块空缺用0表示。一次移动定义为选择0与一个相邻的数字进行交换。最终当板上的结果是 [[1,2,3], [4,5,0]]时,谜板被揭开。给出一个初始状态,返回最少可以通过多少次移动揭开谜板,如果解不开,则返回-1*/ class Node773 { var code: Int var connected = [Int]() //与本节点有连线的其他节点 init(code: Int) { self.code = c

2021-07-30 10:31:36 138

原创 【LeetCode 279】完全平方数

/*难度:中等给定正整数n,找到若干完全平方数,使得它们的和等于n,并且完全平方数的个数最少。示例:输入 n=12输出 312 = 4 + 4 + 4输入 n=13输出 213 = 4 + 9假定:1 <= n <= 10000*/ extension Daily { static func test_leetcode279() { let n = 13 let res = Daily.leetcode279(n) print("最终结果 \(res)

2021-07-15 15:30:34 111

原创 【LeetCode 494】利用 +/- 使表达式成立

/*给定一个整数数组和一个整数target,向数组中的每个整数前添加 + 或者 - ,然后串联起来所有整数,可以构造一个表达式,返回可以通过上述方法构造的、运算结果等于target的不同表达式的数目示例:输入 nums=[1,1,1,1,1], target=3输出 51 =< nums.length <= 200 =< nums[i] <= 10000 =< sum(nums[i]) <= 1000-1000 <= target <= 1

2021-07-15 15:24:16 98

原创 【LeetCode】罗马数转阿拉伯数

/*难度:简单罗马数转阿拉伯数罗马数字字符及定义:I 1V 5X 10L 50C 100D 500M 1000通常大数出现在小数左边;但也有特例: I可以出现在V、X左边分别表示4、9, X可以出现在L、C左边分别表示40、90, C可以出现在D、M左边分别表示400、900示例:输入: "LVIII"输出: 58解释: L = 50, V= 5, III = 3.示例:输入: "MCMXCIV"输出: 1994解释: M = 1000, CM = 900,

2021-07-15 15:22:37 86

原创 【LeetCode852】求山峰数组的峰顶

/*山峰数组arr,长度为n,满足以下性质: 存在索引为p的数字,使得 arr[0] < arr[1] < ... < arr[p] > arr[p+1] > ... > arr[n-1]。给定一个山峰数组,请求出其峰顶,要求时间复杂度为O(logn)。注:假定给定的数组的一定是山峰数组*/ extension Daily { static func test_leetcode852() { let nums = [1,2,4,6,9,13, 21, 2

2021-07-15 15:12:43 245

原创 【LeetCode 451】根据字符出现的频率排序

/*难度:中等给定一个字符串,请将字符串里的字符按照出现的频率降序排列。输出结果中,相同的字符必须放在一起。英文字母区分大小写示例 1:输入:tree输出:eert 或者 eetr*/ extension Daily { static func test_leetcode451() { let cases = [ "tree", "cccaaa", "Aabb", ] for string in cases { print("输入:\(stri

2021-07-15 15:07:17 118

原创 【LeetCode 815】公交路线

/*难度:困难给定一个数组routes,表示一系列公交线路,其中每个routes[i]表示一条公交线路,第i辆公交车将会在上面循环行驶。例如:routes[0]=[1,5,7]表示第0辆公交车会一直按序列1->5->7->1->5->7->...这样的车站路线行驶。现在从source车站出发(初始时不在公交车上),要前往target车站,且期间仅可乘坐公交车。求出最少乘坐的公交车数量,如果不可能到达终点车站,返回-1.示例:输入:routes=[[1,2.

2021-07-15 11:35:55 123

原创 【LeetCode 1442】形成两个异或相等数组的三元组数目

/* 难度:中等 形成两个异或相等数组的三元组数目 给你一个整数数组arr,现需要从数组中取三个下标i,j,k, 其中0<=i<j<=k<arr.length a,b定义如下, a = arr[i] ^ arr[i+1] ^ ... ^ arr[j-1] b = arr[j] ^ arr[j+1] ^ ... ^ arr[k] 请返回能够令a==b成立的三元组(i,j,k)的数目 示例1: 输入:arr = [2,3,1,6,7] 输出:4 解释: (0,1,

2021-07-14 09:51:00 141

原创 【LeetCode 477】汉明距离总和

/*难度:中等计算一个数组中,任意两个数之间的汉明距离的总和。两个整数之间的汉明距离是指这两个数的二进制位不同的位置的数目。注意:数组的元素范围:[0, 10^9]; 数组的长度不超过10^4*/ extension Daily { static func test_leetCode477() { let x = 1 let y = 4 let result = Daily.leetCode477(x: x, y: y) print("result: \(result)")

2021-07-14 09:06:59 78

原创 【LeetCode 518】零钱兑换 II

/*难度:中等给定不同面额的硬币和一个总金额,写出函数来计算可以凑成总金额的硬币组合数。假设每种面额的硬币有无限个。示例:输入 coins=[1,2,5], amount=5输出 45=5; 5=2+2+1; 5=2+1+1+1; 5=1+1+1+1+1假定: 0 <= amount <= 5000; 1 <= 面额 <= 5000 硬币种类不超过500种; 结果符合32位符号整数*/ extension Daily { static func

2021-07-13 16:47:32 66

原创 【LeetCode 1049】最后一块石头的重量 II

/*难度:中等有一堆石头,每块石头的重量都是正整数,每一回合,从中选出任意两块石头: 如果重量不等,则将较轻的石头粉碎,然后将两者重量之差赋给较重的那块石头;如果重量相等,则两块都粉碎,最后,最多只会剩下一块石头,求此石头最小的可能重量。如果没有石头剩下,则返回0。示例:输入:[2,7,4,1,8,1]输出:1解释:组合 2 和 4,得到 2,所以数组转化为 [2,7,1,8,1],组合 7 和 8,得到 1,所以数组转化为 [2,1,1,1],组合 2 和 1,得到 1,所以数组转

2021-07-13 10:51:36 68

原创 【LeetCode 1833】雪糕的最大数量

/*难度:中等夏日炎炎,小男孩Tony想买一些雪糕消消暑。商店中新到n支雪糕,用长度为n的数组costs表示雪糕的定价,其中costs[i]表示第i支雪糕的现金价格。Tony一共有coins现金可以用于消费,他想要买尽可能多的雪糕。请计算Tony可以买到的雪糕的最大数量。Tony可以按任意顺序购买雪糕。示例:输入:costs=[1,3,2,4,1], coins=7输出:4示例:输入:costs=[10,6,8,7,7,8], coins=5输出:0示例:输入:costs=

2021-07-13 10:49:04 143

原创 【LeetCode 451】根据字符出现频率排序

/*难度:中等给定一个字符串,请将字符串里的字符按照出现的频率降序排列。输出结果中,相同的字符必须放在一起。英文字母区分大小写示例 1:输入:tree输出:eert 或者 eetr*/ extension Daily { static func test_leetcode451() { let cases = [ "tree", "cccaaa", "Aabb", ] for string in cases { print("输入:\(str

2021-07-13 10:45:39 108

原创 【LeetCode 1035】不相交的线

在两条独立的水平线上按给定顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字nums1[i]和nums2[j]的直线,这些直线需要满足:1)nums1[i] == nums2[j];2)绘制的直线不予任何其他连线(非水平线)相交;注意:连线即使在端点也不能相交;每个数字智能属于一条连线。以这种方法绘制线条,并返回可以绘制的最大连线数。示例:输入:nums1 = [1, 4, 2], nums2 = [1, 2, 4]输出:2static func nonInte

2021-07-13 10:42:54 352

原创 【LeetCode 1711】大餐计数

/*难度:中等大餐是指恰好包含两道不同餐品的一餐,其美味程度之和等于2的幂。你可以搭配任意两道餐品做一顿大餐。给定一个整数数组,其中第i项是第i道餐品的美味程度,返回你可以用数组中的餐品做出的不同大餐的数量。结果需要对 10^9 + 7 取余。只要餐品下标不同就可以认为是不同的餐品,即便美味程度相同。示例 1:输入:deliciousness=[1,3,5,7,9]输出:4解释:(1,3), (1,7),(3,5),(7,9)示例 2:输入:deliciousness=[1,1

2021-07-13 10:25:45 118

原创 给定正整数, 交换其中的两位数字, 最多交换一次, 输出可以得到的最大的数字

输入一个正整数, 交换其中的两位数字, 最多交换一次, 输出可以得到的最大的数字。思路:从左往右遍历,每次取该位数字,并从右往左查找比该位大的位中最大的那个,如果找到交换即可。func genMax(number: Int) { /* 在数组中查找满足以下条件的数:位于指定下标之后,比指定下标位置的数大,且最靠后 * numbers:数组, 其元素必须是一位数字 * index: numbers数组中指定的某个下标 * 返回值:(Int, Int),第一个是最大值对应的index,第二

2021-04-23 09:45:53 2638

原创 给定一个链表和一个值X,要求将链表中所有小于X的值放到左边,所有大于等于X的值放到右边,并要求原链表的节点顺序不能变。

给定一个链表和一个值X,要求将链表中所有小于X的值放到左边,所有大于等于X的值放到右边,并要求原链表的节点顺序不能变。例如:1->5->3->2->4->2,给定X=3,则要返回1->2->2->3->5->4//key可能重复,所以需要找到前后两个分界节点F、B,先以F为分界,所有F后面比F小的都往F前移;再以B为分界,所有B之前比B大的都往B后移 class LNode { var key: Int var desc: Strin

2021-04-22 17:56:40 616

空空如也

空空如也

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

TA关注的人

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