left函数

Leetcode 69. Sqrt(x)及其扩展(有/无精度、二分法、牛顿法)详解

强颜欢笑 提交于 2019-11-30 06:33:11
Leetcode 69. Sqrt(x) Easy https://leetcode.com/problems/sqrtx/ Implement int sqrt(int x) . Compute and return the square root of x , where x is guaranteed to be a non-negative integer. Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned. Example 1: Input: 4 Output: 2 Example 2: Input: 8 Output: 2 Explanation: The square root of 8 is 2.82842..., and since the decimal part is truncated, 2 is returned. 分析: leetcode上的这个不带精度要求,且输出一个整数即可(其实可以当成精度要求小于等于1)。 方法一:(二分法) 对于本题,最直观的方法就是二分法。使用二分法时,需要注意有三个指针,分别指向前中后(pre、medium、last,在书写、习惯

算法---------括号生成

自闭症网瘾萝莉.ら 提交于 2019-11-30 02:11:11
题目: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/generate-parentheses 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 我的解决方法: class Solution { public List<String> generateParenthesis(int n) { List<String> result = new ArrayList<>(); generate(n,n,"",result); return result; } private void generate(int left,int right,String str, List<String> result) { if (left == right && left == 0) { result.add(str); } if (right > left) { generate(left,right-1,str +")",result); } if (left > 0) {

算法第二章上机实践报告

不问归期 提交于 2019-11-29 22:36:54
1.实践题目:7-2 改写二分搜索算法(此题与张雯静同学一起完成) 2.问题描述 3.算法描述 1 int BinarySearch(int a[],int x,int n){ 2 //找到x的下标并返回,否则输出-1 3 int left = 0; int right = n-1; 4 while(left<=right){ 5 int middle = (left+right)/2; 6 if(x==a[middle]) { 7 cout<<middle<<" "<<middle; 8 return 0; 9 } 10 if(x>a[middle]) left=middle+1; 11 if(x<a[middle]) right=middle-1; 12 } 13 if(right<0) { 14 cout<<-1<<" "<<0; 15 return 0; 16 } 17 18 if(left>n-1) { 19 cout<<n-1<<" "<<n; 20 return 0; 21 } 22 23 if((left>0)&&(left<=n-1)) { 24 cout << right << " " <<left; 25 return 0; 26 } 27 } BinarySearch 该题的BinarySearch算法与第一道题二分查找其实差不多,但是由于题目要求不同

莫比乌斯反演详解

末鹿安然 提交于 2019-11-29 18:48:58
目录 莫比乌斯反演 莫比乌斯函数 狄利克雷卷积 反演 应用 练习题目 YY的gcd 约数个数和 后记 莫比乌斯反演 莫比乌斯函数 \(\mu(n)=1,n=1\) \(\mu (n)=(-1)^m, n=\prod^m_{i=1}p_i^{k_i},\forall k_i = 1\) \(\mu (n)=0 ,otherwise\) 性质 积性函数 \(\sum _{i|n} \mu(i)=\epsilon (\epsilon = [n=1])\) 筛法 inline void init(){ mu[1]=1; for(int i=2;i<=n;i++){ if(!np[i]) pri[++top]=i; for(int j=1;j<=top&&i*pri[j]<n;j++){ int now=i*pri[j]; np[now]=1; if(i%pri[j]) mu[now]=-mu[i]; else{ mu[now]=0;break; //出现平方因子 } } } } 狄利克雷卷积 \((f∗g)(n)=∑_{d|n}f(d)∗g(\frac{n}{d})\) 数论函数与狄利克雷卷积形成群,满足 结合律,封闭性,单位元,逆元 ,同时还满足 交换律 其中单位元为 \(ϵ\) , \(ϵ(n)=[n=1]\) 比较常用的积性数论函数备用 反演 有 \(f(n)=\sum_{i|n}g

洛谷 P5564: [Celeste-B]Say Goodbye

女生的网名这么多〃 提交于 2019-11-29 18:22:54
题目传送门: 洛谷 P5564 。 题意简述: 有 \(n\) 个点,染 \(m\) 种颜色,第 \(i\) 种颜色染恰好 \(cnt_i\) 个节点,满足 \(cnt_1+cnt_2+\cdots+cnt_m=n\) 。 求这 \(n\) 个点组成的 本质不同 的 无标号 + 有序 (子树有序)基环(环长至少为 \(2\) )树个数。 两棵基环树本质相同当且仅当通过环的旋转(不能翻转)后能使得它们完全相同。 题解: 首先考虑只染一种颜色的 \(n\) 个点( \(n\ge1\) )的无标号有根有序树个数计数。 考虑这棵树的括号序,发现其括号序是长度为 \(n\) 的合法括号串,但是必须满足最外层括号(根节点)只有一对。 即 \(n\) 个点的有根有序树个数为 \(n-1\) 对括号组成的合法括号串,即第 \(n-1\) 个卡特兰数。 令 \(n\) 个点的有根有序树个数为 \(t_n\) ,令其 OGF 为 \(\displaystyle T=\sum_{i=1}^{+\infty}t_ix^i\) ,即 \(T=xC\) ,其中 \(C\) 为卡特兰数的 OGF。 再考虑染色的问题,不难发现只要有序,则染色和树形态是相互独立的。 即只要乘上一个多重组合数 \(\displaystyle\binom{n}{cnt_1,cnt_2,\ldots,cnt_m}\) 即可。 回到原问题

力扣刷题(python)50天——第四十九天:反转字符串

风格不统一 提交于 2019-11-29 11:25:39
力扣刷题(python)50天——第四十九天:反转字符串 题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”] 示例 2: 输入:[“H”,“a”,“n”,“n”,“a”,“h”] 输出:[“h”,“a”,“n”,“n”,“a”,“H”] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-string 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 方法 双指针,分别在数组左右两端,交换两者位置,后向内迭代。 解答 class Solution(object): def reverseString(self, s): """ :type s: List[str] :rtype: None Do not return anything, modify s in-place instead. """ l=len(s) left=0 right=l-1 while right

Sql中的left函数、right函数

社会主义新天地 提交于 2019-11-29 08:37:11
DB2中left()函数和right()函数对应oracle中的substr()函数 DB2 LEFT、RIGHT函数 语法: LEFT(ARG,LENGTH)、RIGHT(ARG,LENGTH) LEFT、RIGHT函数返回ARG最左边、右边的LENGTH个字符串,ARG可以是CHAR或BINARY STRING。 eg:SELECT LEFT(NAME,2),RIGHT(NAME,2) FROM T1 ORACLE substr()函数 substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符 substr('Hello World',2,4) //返回结果为 'ello' substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符 Oracle数据库中是没有left() 和right() 函数的,若想按照DB2中对应的函数去使用,自己新建两个function即可,方法如下 LEFT CREATE OR REPLACE FUNCTION "LEFT"

【Tadeas】图片特征

帅比萌擦擦* 提交于 2019-11-29 05:05:35
特征提取 直方图 用于计算图片的特征(Feature) 和表达(representation) 对图片数据/特征分别的一种统计 ** 灰度、颜色 ** 梯度/边缘、形状、纹理 ** 局部特征点、视觉词汇 区间(bin) ** 均有一定的统计或者物理意义 ** 一种数据或者特征的代表 ** 需要预定义或者基于数据进行学习 ** 数值是一种统计量: 概率、频数、特定积累 维度小于原始数据 对数据空间(Bin)进行量化 人工分割 人工分割: 简单高效,但是存在量化问题,量化过宽容易造成精度的损失或者量化过窄容易过拟合 聚类算法进行无监督学习 常用方法:Kmeans、 EM算法、Mean shift、谱聚类、层次聚类等 Kmeans 容易受到类中心书K的选择和初始点的选取的影响-->容易陷入局部最优 ** 改进:多次全随机取最优;Kmeans++ 半随机 几何特征 边缘(Edge) ** 像素明显变化的区域 ** 具有丰富的语义信息 用于物体识别和几何、视角变化 一般边缘定义为:像素值函数快速变化的区域-->一阶导数(灰度值函数)的极值区域 边缘提取: ** 先高斯去噪,在使用一阶导数获取极值(导数对噪声敏感) ** 梯度幅值/强度: $ h_{x}{{(x,y)}^{2}}+h_{y}{{(x,y)}^{2}} $ ** 梯度(增加最快)方向 $ \arctan (\frac{h_{y}

函数二分法查下标

别说谁变了你拦得住时间么 提交于 2019-11-28 21:22:08
#include<stdio.h> int xiabiao(int *arr,int size, int num) { int left=0; int right=size-1; int mid; while(left<=right){ mid=(left+right)/2; if(num<arr[mid]){ right=mid-1; } else if (num>arr[mid]){ left=mid+1; } else return mid; }return -1; } int main() { int arr[]={1,2,3,4,5,6,7,8,9}; int size; size=sizeof(arr)/sizeof(arr[0])-1; printf(“下标是%d”,xiabiao(arr,size,3)); } 来源: CSDN 作者: wwwwwmk 链接: https://blog.csdn.net/wwwwwmk/article/details/103244426

浅析scipy.signal.find_peaks()

拟墨画扇 提交于 2019-11-28 20:29:36
浅析scipy.signal.find_peaks() 依旧是官方文档先行 scipy.signal.find_peaks 由于需要监测波形的峰值,因此找到该函数 该函数通过与周围位置的比较找到峰值 输入: x: 带有峰值的信号序列 height: 低于指定height的信号都不考虑 threshold: 其与相邻样本的垂直距离 distance: 相邻峰之间的最小水平距离, 先移除较小的峰,直到所有剩余峰的条件都满足为止。 prominence: 个人理解是突起程度,详见 peak_prominences width: 波峰的宽度,详见 peak_widths plateau_size : 保证峰对应的平顶数目大于给定值 输出: peaks : x对应的峰值的索引 properties: height--> ‘peak_heights’ threshold--> ‘left_thresholds’, ‘right_thresholds’ prominence--> ‘prominences’, ‘right_bases’, ‘left_bases’ width--> ‘width_heights’, ‘left_ips’, ‘right_ips’ plateau_size--> ‘plateau_sizes’, left_edges’, ‘right_edges’