- 博客(19)
- 收藏
- 关注
原创 矩阵清零
问题:给定一个二维的mxn矩阵,如果某个元素为0,那么将其所在的行和列的所有元素设为0.不允许使用额外空间。OC算法实现://// SetMatrixZero.h// Algorithm//// Created by han shuai on 2016/9/28.// Copyright © 2016年 han shuai. All rights reserved.//
2016-09-29 11:10:35
521
原创 插入位置
问题:给定一个有序数组和一个目标值,返回目标值的下标,如果目标值不在输在里,那么返回其插入数组后的下标,插入后数组依然保持有序。假定数组不存在重复元素。依然采用二分查找,找到则返回下标没有找到,循环结束后,低位记录了第一个大于目标值的元素位置。即插入目标位置。//// SearchInsert.h// Algorithm//// Created by ha
2016-09-27 22:16:49
527
原创 二维数组搜索
问题:设计一个算法对m*n矩阵进行搜索,这个矩阵拥有如下属性。1、每行的数都是从左到右排序好的;2、每行的数大于上行的数。思路:二维数组展开为一维数组,用二分查找法查找。NSArray模拟矩阵: NSArray *line0 = [NSArrayarrayWithObjects:@1,@2,@3,@4,nil]; NSArra
2016-09-27 18:15:07
335
原创 三角形
问题:给定一个正整数n,产生Pascal三角形的前n行。OC算法实现://// PascalTriangle.h// Algorithm//// Created by han shuai on 2016/9/27.// Copyright © 2016年 han shuai. All rights reserved.///** 20 */#import
2016-09-27 15:46:47
251
原创 合并有序数组
问题:给定两个有序数组A和B,把B合并到A中,保持结果有序OC算法实现://// MergeSortedArray.h// Algorithm//// Created by han shuai on 2016/9/27.// Copyright © 2016年 han shuai. All rights reserved.///** 19 */#import
2016-09-27 15:16:14
248
原创 旋转数组搜索
问题:给定一个有序组的旋转和一个目标值,返回目标值在该数组的下标,如果没有,返回-1.假设该数组没有重复值。依然使用二分查找法,OC算法实现://// SearchRotation.h// Algorithm//// Created by han shuai on 2016/9/27.// Copyright © 2016年 han shuai. All rights r
2016-09-27 14:11:01
238
原创 旋转数组最小值
问题:输入一个递增排序数组的一个旋转,输出旋转数组的最小值。OC根据二分查找实现的算法://// MinOfRotation.h// Algorithm//// Created by han shuai on 2016/9/26.// Copyright © 2016年 han shuai. All rights reserved.///** 16 */#impor
2016-09-26 17:14:21
230
原创 TOP K I
问题:求一维数组中最小的k个数。时间复杂度为O(n)的OC算法实现://// TopKI.h// Algorithm//// Created by han shuai on 2016/9/26.// Copyright © 2016年 han shuai. All rights reserved.///** 12 */#import @interface
2016-09-26 15:44:51
300
原创 产生随机数
问题:给出一个整形数组,以及数组的最大值max和最小值min,写一个函数产生一个在[min,max]范围内的随机数,该随机数并不在数组中。假设总能找到该随机数。OC算法实现://// NumInRange.h// Algorithm//// Created by han shuai on 2016/9/25.// Copyright © 2016年 han shuai.
2016-09-25 23:19:09
311
原创 数位重组
问题:给定两个数组表示的整数,比如x=1234={1,2,3,4},y=2410={2,4,1,0},返回第一个整数的重组后的值最接近第二个整数,并且大于第二个整数。假设两个数组的大小相同,并且肯定能找到渡河条件的数。输入{1,2,3,4}和{2,4,1,0}返回{2,4,1,3}OC算法实现://// GetClosestBigger.h// Algorithm//// C
2016-09-25 22:35:03
343
原创 数组配对
问题:给定N个整数,N为偶数,是否能找到N/2对,似的每队和能被k整除。每个元素只能出现在一个配对中。时间复杂度为O(n)的OC算法实现://// CheckPairable.h// Algorithm//// Created by han shuai on 2016/9/25.// Copyright © 2016年 han shuai. All rights rese
2016-09-25 21:18:19
468
原创 合并区间
问题:给定一个去见几个,合并里面重叠的区间,并返回新的不含重叠区间的集合。时间复杂度O(nlogn)的 OC算法实现:PS:区间定义同插入区间//// MergeInterval.h// Algorithm//// Created by han shuai on 2016/9/24.// Copyright © 2016年 han shuai. All rights
2016-09-25 00:33:15
302
原创 插入区间
问题:给定一个没有重叠的区间序列,现插入一个新的区间到该序列中,要求维持没有重叠的情况。假设该序列存放的区间是有序的。举例:区间序列:[4,5],[7,8],[12,14],插入区间[2,8],返回插入后的区间:[2,8],[12,14]时间复杂度为O(n)的 OC算法实现:定义区间及区间点://// IntervalPoint.h// Algorithm//// C
2016-09-24 23:24:30
403
原创 重叠区间个数
问题:给定多个可能重叠的区间,找出重叠区间的个数。例如:输入:[1,5],[10,15],[5,10],[20,30]输出:3时间复杂度O(nlogn) OC算法实现:/** 6 */#import //区间点对象@interface IntervalPoint : NSObject@property (nonatomic,assign) int value;
2016-09-24 17:13:22
591
原创 最大下标距离
问题:给定一个整型数组,找出最大下标距离j-i,当且仅当A[i]时间复杂度O(n) OC算法实现:/** 5 */#import typedef void (^complete)(int smallIndex, int bigIndex); //小下标 大下标typedef void (^failed)();@interface MaxIndexDistance : NSO
2016-09-24 00:29:20
510
1
原创 数组旋转
问题:返回将一维数组向右旋转k个位置的结果。比如,一维数组{1,2,3,4,5},k=2时,返回结果为{4,5,1,2,3}。要求常量级空间复杂度,允许修改原数组。OC算法实现:/** 4 */#import @interface RotateK : NSObject- (NSMutableArray *)rotateK:(NSMutableArray *)dataArr
2016-09-24 00:24:13
332
原创 两数之和III
问题:给定一个整型数组,检查是否含有两个数使其和为某个指定的值(数组元素可重复)。时间复杂度O(n) OC算法实现:/** 3 */#import @interface HasSumV2 : NSObject- (BOOL)hasSum:(NSArray *)dataArr sum:(int)sum;@end#import "HasSumV2.h"@implem
2016-09-24 00:18:21
280
原创 两数之和II
问题:给定一个整型数组,找出其中的两个数使其和为某个指定的值,并返回这两个数的下标,假设数组元素各不相同,要求时间复杂度为O(n),n为数组长度。OC算法实现:/** 2 */#import typedef void (^complete)(int indexX, int indexY); //x下标 y下标typedef void (^failed)();@interfa
2016-09-24 00:14:17
352
原创 两数之和I
给定一个整型数组,是否能找出其中的两个数使其和为某个制定的值?时间复杂度为O(nlogn) OC算法实现:/** 1 */#import typedef void (^complete)(int x, int y);typedef void (^failed)();@interface HasSumV0 : NSObject- (void)hasSum:(NSArray
2016-09-24 00:00:50
245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人