摘要: 题目1 给定一个整型数组arr, 打印其中出现次数大于一半的数, 如果没有这样的数,打印提示信息 进阶 给定一个整型数组arr, 再给定一个整数K, 打印所有出现次数大于 N/K的数,如果没有这样的数字,打印提示信息 题目的思路是: 一般都思路是 哈希表记录每个数跟出现的次数,但是额外空间复杂度是O 阅读全文
posted @ 2017-08-26 21:20 toov5 阅读(725) 评论(0) 推荐(0) 编辑
摘要: 给定一个无序数组arr,求出需要排序的最短子数组长度 例如: arr=[1,5,3,4,2,6,7] 返回4,因为只有[5,3,4,2]需要排序 介绍一种 左右遍历方法 左右夹击 确认长度 首先从 右往左遍历 记录最小值 如果arr[i] >最小值 那么 最小值的位置应该在arr[i]的左边 然后从 阅读全文
posted @ 2017-08-26 17:09 toov5 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 给定一个 N * N的矩阵,把这个矩阵调整成顺时针转动90度后的形式 要求额外空间复杂度为O(1) 这里仍然使用分圈处理方式 如果你愿意一层一层一层的拨开我的心~ 哈哈哈 由外到内的旋转 上代码一目了然: 随便抽查了几个数: 正方形的好做很多,正方形的题目比矩形的考虑维度少了一个,就是一行和一列时候 阅读全文
posted @ 2017-08-25 15:14 toov5 阅读(1623) 评论(0) 推荐(0) 编辑
摘要: 给定一个整型矩阵matrix,用转圈方式打印它 要求额外空间复杂度:O(1) 这里介绍一种 矩阵处理方式, 矩阵分圈处理!!!!!! 思路: 在矩阵中庸左上角的坐标(tR, tC)和右下角(dR, dC)就可以表示一个子矩阵。 比如 当(tR, tC)=(0,0) (dR,dC)=(3,3)时, 表 阅读全文
posted @ 2017-08-23 20:25 toov5 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 给定两个有序数组arr1 和 arr2 ,再给定一个int K,返回所有的数中第K小的数 要求长度如果分别为 N M,时间复杂度O(log(min{M,N}),额外空间复杂度O(1) 解决此题的方法跟之前的求两个数组求中位数的情况,如出一辙~ 非常给力! 此题目需要分情况讨论: 假设长度较短的数组长 阅读全文
posted @ 2017-08-23 16:13 toov5 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 题目描述: arr1 和 arr2 长度都为N 求两个数组中所有数的上中位数 要求 时间复杂度 O(logN) 额外空间复杂度O(1) 这道题目的方法比较好玩: 这两个数组如下表示: arr1[start1....end1] arr2[start2...end2] 如果start1==start2 阅读全文
posted @ 2017-08-23 10:56 toov5 阅读(748) 评论(0) 推荐(0) 编辑
摘要: 给定两个不等于0的整数M和N,求M和N的最大公约数 辗转相除法 思路:如果q和r分别是m除以n的商及余数,即m=nq+r, 那么m和n的最大公约数等于n和r的做大公约数!(递归) 阅读全文
posted @ 2017-08-23 09:00 toov5 阅读(535) 评论(0) 推荐(0) 编辑
摘要: str1 和 str2 求str1 的子串 中含有str2 的所有字符的最小字串长度 例如: str1 ="abcde" str2="ac" 返回3 本题适合用还款方法 str1 去还 str2 里面的元素 阅读全文
posted @ 2017-08-22 21:03 toov5 阅读(2709) 评论(0) 推荐(0) 编辑
摘要: 类似于 Ab DC e str="aaABCDEcBCg" k=7 Ec k=4 CD k=10 g 解题思路: 介绍一种最快最强的解题方法: 从 k-1 位置开始 向左统计连续出现的大写字母数量 int uNum 遇到小写字母就停止 如果 nNum为奇数, str[k..k+1]是被选中的新型字符 阅读全文
posted @ 2017-08-22 16:12 toov5 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 给定一个字符串str, 返回str的最长无重复字符子串长度 例如 str="abcd' 返回4 str=“aabcb” 最长“abc” 返回3 解决本题的思路非常非常有趣,这种思路必须要学会: 本题目可以做到 时间复杂度O(N) str长度N 空间复杂度O(M) M是字符编码 根据字符编码 大小 申 阅读全文
posted @ 2017-08-22 11:24 toov5 阅读(432) 评论(0) 推荐(0) 编辑