![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
晓魏
~阳光很好,阳光很暗~
展开
-
多数元素(超级水王问题扩展)
给定一个长度为N的数组arr,和一个大于1的正整数K,如果有哪些数出现的次数大于N/K,就返回这些数要求:时间复杂度O(N) 额外空间复杂度O(K)思考:最多会有k-1个数原创 2022-04-20 22:13:15 · 299 阅读 · 0 评论 -
随机函数相关面试题详解
1.给你一个随机函数f,等概率的返回1-5的一个数组,这是你唯一可以使用的随机机制,如何实现等概率返回1-7中的一个数字2.给你一个随机函数,等概率返回a-b中的一个数字,这是你唯一可以使用的随机机制,如何等概率的返回c-d中的一个数字3.随机函数f,以p概率返回0,以1-p概率返回1,核心思想使用位运算1.对随机函数进行转化,目标是使能够产生0,1等概率2.确定目标有多少中可能性3.确定二进制数用长度...原创 2022-04-20 18:51:28 · 464 阅读 · 0 评论 -
数组子序列累加和求余数之后的最大值问题详解
给定一个非负的数组arr,和一个正数m,返回arr中所有子序列累加和对m求余数之后的最大值1.如果arr中每个数字不大,怎么做这道题?2.如果arr中m的值很小,怎么做这道题?3.如果arr的长度很短,但是每个arr中数字比较大并且m比较大?如何求解所有的子序列问题?...原创 2022-04-20 16:36:13 · 367 阅读 · 0 评论 -
字符串分类问题
如果两个字符串,所含有的字符种类完全一样,就算做一类,只有小写字母(a-z)组成的一批字符串,都放在字符类型的数组Stringp[] arr,返回arr中一共有多少类?长度:字符串的长度可以不一样,但是字符串的所含字母的类型个数必须一致“aa”,“a” 是一类,“baba”,“ba” 是一类1.计算每一个字符串的摘要2.放入到HashSet,HashSet.size()就是结果方式二:1.使用位运算来代替摘要,优化常数时间的套路:当看到算法题是(a-z)的小写字母的设定的时候,就知道hash表原创 2022-04-20 12:48:20 · 168 阅读 · 0 评论 -
滑动窗口技术-最大无重复字符问题(暴力,滑动窗口,动态规划)
返回一个字符中最大无重复字符的长度原创 2022-04-20 12:24:12 · 362 阅读 · 0 评论 -
滑动窗口技术-子串包含问题(顺序无关)
给定一个长度为m的aim的字符串,以及一个长度为n的字符串str,能否在str中找到一个长度为m的连续子串,这个子串刚好由aim的m字符构成,顺序无所谓,返回满足子串的起始位置,未找到返回-1原创 2022-04-20 11:45:37 · 236 阅读 · 0 评论 -
搜索二叉树后序遍历反序列化(常规思路(O(N^2)),二分思路o(n*O(N*lgN)))
1.根据二叉搜索树的后续遍历arr,序列化成一个树,并且返回头结点原创 2022-04-19 14:31:28 · 224 阅读 · 0 评论 -
机器人走路方法数(递归-动态规划)
1.递归揭发2.动态规划的揭发原创 2022-04-15 23:09:18 · 527 阅读 · 0 评论 -
经典n皇后的问题(递归-位运算进行优化)
1.递归解法2.扩展解法-使用位运算进行优化原创 2022-04-15 09:54:26 · 322 阅读 · 0 评论 -
博弈问题-轮流取牌(暴力递归,记忆化搜索,动态规划)
1.暴力递归2.记忆化搜索3.动态规划原创 2022-04-15 08:42:11 · 471 阅读 · 0 评论 -
反转一个栈的结构(不使用额外的数据结构)
1.不使用额外空间进行逆序栈原创 2022-04-11 10:43:51 · 618 阅读 · 0 评论 -
矩阵技巧-旋转矩阵
1.旋转矩阵原创 2022-03-31 13:20:37 · 785 阅读 · 0 评论 -
矩阵打印技巧-转圈打印矩阵
1.介绍转圈打印矩阵的宏观规律2.打印一层函数3.打印转圈函数原创 2022-03-30 12:14:25 · 384 阅读 · 0 评论 -
矩阵打印问题-zigzag打印矩阵
1.矩阵打印技巧2.打印斜线3.打印函数原创 2022-03-30 10:52:22 · 647 阅读 · 0 评论 -
简单的博弈问题:牛羊吃草问题(递归解法-暴力解法)
1.这是一道简单的博弈的问题2.暴力求解-3.动态规划求解原创 2022-03-29 18:46:00 · 1352 阅读 · 0 评论 -
移动距离不超过k的几乎有序的数组进行排序(堆最优解 时间复杂度N*O(K))
1.堆算法的应用原创 2022-03-25 18:56:24 · 947 阅读 · 0 评论 -
堆数据结构的实现详解(递归方式,非递归的方式)
1.堆数据结构的简单介绍;2.堆数据结构的递归的方式3.非递归的实现方式原创 2022-03-25 12:01:41 · 740 阅读 · 0 评论 -
判断链表是否是回文结构(反转链表方式,栈的方式,栈的优化方式,原地比较的方式)
1.对链表的回文结构判断进行总结2.逆序链表方式 空间复杂度O(n)3.栈的方式 空间复杂度O(n)4.栈的方式进行优化 空间复杂度O(n)5.原地比较的方式 空间复杂度O(1)原创 2022-03-24 19:28:19 · 1331 阅读 · 0 评论 -
快慢指针-链表中点-算法题练习(不晕,算我输)
快慢指针-在链表中点算法的应用1.其实主要考察的是边界条件确定;2.各种初始化条件的原创 2022-03-23 16:52:43 · 317 阅读 · 2 评论 -
寻找链表的交叉点的总结(三种方式实现)
对寻找公共链表的总结1.hashSet2.先走K步3.有点像快慢指针思想原创 2022-03-22 17:08:09 · 2056 阅读 · 0 评论 -
三色旗问题详解(两种高效优雅的 实现方式)
三色问题 两种高效优雅的实现方式原创 2022-03-16 20:54:09 · 264 阅读 · 0 评论 -
归并排序详解以及进阶(两种方式实现 递归排序和非递归排序)
归并排序详解以及进阶(两种方法实现,递归 非递归)原创 2022-03-15 19:39:18 · 166 阅读 · 0 评论 -
循环队列的实现方式详解(三种处理方式)
使用数组的方式实现循环队列本质是一种队列,具有FIFO的数据结构;把数组想象成为一个一个环状的空间,就是把存储队列元素从逻辑上看作一个环,成为循环队列;在数组中操作才能表现成环状的逻辑结构呢?使用除法的取余运算;...原创 2022-03-15 11:24:35 · 2343 阅读 · 0 评论 -
统计二进制数中1的个数方法(余数法,位移法,异或法)
Leetcode 191编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数在这里我会介绍好解法,供大家参考一下除2取余数的方法// 这种方法会出现 超出时间限制public int hammingWeight(int n) { int cnt = 0; while (n !=0) { cnt += n % 2; // 如果对2取余数,余数为1说明,最右侧是1,否则是0原创 2022-03-12 20:50:12 · 179 阅读 · 0 评论 -
异或(位运算)的性质在算法中的应用
异或的基本性质,以及在算法中的应用,原创 2022-03-11 20:58:26 · 272 阅读 · 0 评论 -
加油站-问题详解(暴力-整体-贪心)
加油站(暴力解法,整体最优,贪心解法)原创 2022-03-11 15:09:14 · 1731 阅读 · 2 评论 -
多数元素(超级水王问题)
多数元素(超级水王问题)leetCode 169给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。这个问题的核心是对空间复杂度要求;第一种解法很容易理解,比较常规;第一次循环使用HashMap进行计数第二次//第一种解决方式,使用hashMap,对每一个元素进行计数, private int majo原创 2022-03-09 15:27:41 · 106 阅读 · 0 评论