
算法
Mark周末
这个作者很懒,什么都没留下…
展开
-
list去重
list如何去重list(set(l))打乱了顺序l = [1,1,3]l = list(set(l)) #去重成功,但是打乱了顺序sortedsorted(set(l),key=l.index)迭代去重原创 2021-01-29 14:16:35 · 151 阅读 · 0 评论 -
DP动态规划 递归迭代
在刷leetcode的时候,因为对DP和递归不是很熟,对两者界限也很模糊。所以看了一些概念以后来写一个日记DP动态规划:解决一类(离散)优化问题的思路的总称;这是一类问题的定义,解决这类问题的核心在于找到递推公式f(x)=f(x−1)+g(n)得到递推公式之后,如何计算递推公式存在两种方法:自顶向下和自底向上自顶向下:能采用递归实现int Fibonacci(int n){ if(n == 0) return 0; if(n == 1) ret原创 2021-01-28 15:06:23 · 322 阅读 · 1 评论 -
二叉树 先根遍历 中跟遍历 后跟遍历 迭代+递归实现代码
二叉树 先根遍历 中跟遍历 后跟遍历结构体:struct Node{ int val; Node *LC; Node *RC; Node(int k){ this->val=k; LC=NULL; RC=NULL; }};函数:void preOrder(Node *root){//先根遍历就是DFS呀 递归实现 if(root==NULL){ re...原创 2019-12-10 22:39:31 · 1135 阅读 · 0 评论 -
字节跳动面试 输入两个值n和k,n表示我们有从1到n个整数,然后将这些整数都字符串化之后按字典排序,找出其中第K大。
题目:输入两个值n和k,n表示我们有从1到n个整数,然后将这些整数都字符串化之后按字典排序,找出其中第K大的。例如:n=15,k=5.那么1-15字符串化之后排序如下:1,10,11,12,13,14,15,2,3,4,5,6,7,8,9。其中第5大的就为13。求解: 限定n<100,求解一百以内的排序。思路:1,10,11,12,13,14,15,16,17,18,19,2,20,...原创 2019-12-10 13:48:45 · 1874 阅读 · 0 评论 -
有序数组平方以后不重复元素个数
给个有序数组,然后求元素平方后不重复的元素个数,例如[-10, -10, -5, 0, 1, 5, 8, 10]直接方法:int NotRep(int a[],int n){ int *b= new int[n]; int k=0; bool flag=false; for(int i=0;i<n;i++){ int temp=a[i]*a[i]; //a[i]**2 f...原创 2019-12-09 22:58:09 · 1017 阅读 · 1 评论 -
循环有序数组 二分查找算法 迭代实现
在 [4,5,9,23,1,2,3] 循环有序的数组中查找关键词 K。上次递归实现不是很好,就当是练习递归了,见blog代码如下:int FindK(int a[],int k,int n){ int high,low; high=n-1; low=0; while(high>low){ int mid=(high+low)/2; if(a[mid]>a[low]...原创 2019-12-09 21:51:26 · 185 阅读 · 0 评论 -
循环有序数组 二分查找算法 递归实现
int findK(int a[],int n,int k){ int l=n; int p=div(a,0,n-1); cout<<p<<endl; if(k>a[0]){ return divl(a,0,p-1,k); } else{ return divl(a,p,n-1,k); ...原创 2019-12-04 16:26:40 · 505 阅读 · 0 评论 -
各种排序 时间 空间复杂度稳定性问题汇总
参考博客原创 2019-12-03 13:16:28 · 150 阅读 · 0 评论