摘要:
刷题笔记+-+283.移动零+be5bc16d-9504-40d6-b23e-6a2648a4d21a 需要复习内容:快慢指针法 ☐ 记住时间和空间复杂度 [ ] [ ] 待办: ☐ 查一下时间复杂度 ☐ 查一下空间复杂度 [ ] 解法一:模拟 遍历一遍将非零元素前移,使用k控制下标 并且遍历过程中 阅读全文
摘要:
约瑟夫环公式:f(N,M)=(f(N-1,M)+M)%N; 1 class Solution { 2 public: 3 int findTheWinner(int n, int k) { 4 // 约瑟夫环:f(N,M)=(f(N-1,M)+M)%N; 5 int last=0;//幸存者的下标最 阅读全文
摘要:
解题思想:字符串中字符出现频率取交集,最终将交集中的字符都计入结果 创建一个最小频率数组minfreq,和临时频率数组tmp; 遍历字符串数组,每次遍历前将临时tmp置0,然后计算每个字符频率,遍历一个字符串后就将tmp和minfreq进行取交集,即更新minfreq值 最终构造结果集,对26个字母 阅读全文
摘要:
搜索解空间: 1、约束条件: 只要第t个结点和前t-1个结点中被选中的结点都有边相连,则放入团中,否则不能放入 2、限界条件: 当第t个结点不能放入团中时,要判断假设下面的n-t个结点全放入团中加上当前以及放入的结点cn个的和:cn+n-t是否大于最优值bestn,若大于,则有必要继续搜索; 若小于 阅读全文
摘要:
快排(QuickSort)思想: 基于分治法的思想: 1、分解:从数列中取出一个元素作为基准元素,将问题分解为两个子序列列,左子序列都小于基准元素,右子序列都大于 2、治理:对两个子序列进行快速排序。 3、合并:将排序后的子序列进行合并,得到原问题的解 时间复杂度:平均情况:O(nlogn) 空间复 阅读全文
摘要:
隔板法求把n个球翻入m个盒子里: (一)不允许为空: n个球放m个盒子里,用m-1个隔板隔开n个球有n-1个放法,所以Cn-1,m-1 (二)允许为空: n个球放m个盒子里,允许为空,先假想成把m个球放入m个盒子里,每盒一个,再把手里的n个球分配给m个盒子,此时的盒子肯定不为空 此时我们用了n+m个 阅读全文
摘要:
一、解释: Java的普通类是一个完善的功能类,可以直接实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。 java抽象类是拥有抽象方法的类,要用abstract修饰。 拥有抽象方法的类就是抽象类,抽象类 阅读全文
摘要:
C++pair类型: 标准库类型--pair类型定义在utility头文件中定义: 1、pair的创建和初始化 pair包含两个数值,与容器一样,pair也是一种模板类型。但是又与之前介绍的容器不同,在创建pair对象时,必须提供两个类型名,两个对应的类型名的类型不必相同 pair<string,s 阅读全文
摘要:
本题利用dfs将一整座岛屿找出来,所以我们每在首函数里调用一次dfs函数,就是一座新岛屿,岛屿数量加1 在dfs函数里运用“感染”一词来寻找相连的区域 1 class Solution { 2 public: 3 int ans=0; 4 int numIslands(vector<vector<c 阅读全文
摘要:
本题计算最大的岛屿面积,我们用dfs来深搜每个岛,并在每次dfs之前定义s来计算每个岛的面积,并同时更新最大值,我们将地图二维数组和每个点的x、y和s传入dfs函数,在第一个函数里的每一次dfs,就是一座新的岛屿 在dfs中我们进行点的不合法判断且回溯,并修改遍历过的1改为0,然后将此岛屿面积s++ 阅读全文