当前位置: 首页 > news >正文

北京高端网站定制公司哪家好seo优化常识

北京高端网站定制公司哪家好,seo优化常识,做网站切片,网站建设多长时间能学会目录 题目:辗转相除法(求最大公约数)思路分析:辗转相除法(也叫欧几里得算法)gcd(a,b) gcd(b,a mod b)复杂度:时间复杂度 O ( n l o g ( m a x ) ) O(nlog(max)) O(nlog(max))、空间复杂度 O (…

目录

题目:辗转相除法(求最大公约数)

题目链接:LeetCode-1979. 找出数组的最大公约数
在这里插入图片描述

思路分析:辗转相除法(也叫欧几里得算法)gcd(a,b) = gcd(b,a mod b)

辗转相除法其核心部分为:若r 是a ÷ b的余数,则 gcd(a, b)=gcd(b, r)

复杂度:时间复杂度 O ( n + l o g ( m a x ) ) O(n+log(max)) O(n+log(max))、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func findGCD(nums []int) int {max, min := getMaxMin(nums)return getGcd(max, min)
}
// gcd求最大公约数
func getGcd(a int, b int) int {yu := 0for b != 0 {yu = a % b  //得到余数a = b       //根据辗转相除法,把被除数赋给除数b = yu      //余数赋给被除数}return a        //返回除数
}
func getMaxMin(nums []int) (max int, min int) {max, min = nums[0], nums[0]length := len(nums)for i:=1; i<length; i++ {if nums[i] > max {max = nums[i]}if nums[i] < min {min = nums[i]}}return
}

题目:判断是否是素数

思路分析:判断n是否是素数只需测试 2 到 sqrtN 的所有可能因子 + “6K +1/-1” 规则

复杂度:时间复杂度 O ( s q r t ( n ) ) O(sqrt(n)) O(sqrt(n))、空间复杂度 O ( 1 ) O(1) O(1)

Go代码

func isPrimes(n int) bool {if n <= 1 {return false}if n <= 3 {return true}if n%2==0 || n%3==0 {return false}// 判断n是否是素数时,只需要测试 2 到 sqrtN 的所有可能因子// max := int(math.Pow(float64(n), 0.5))max := int(math.Sqrt(float64(n)))// 根据 "6K +1/-1" 规则for i:=5; i<=max; i+=6 {// i+2 正好是 "6K +1/-1" 中的一个值if n % i == 0 || n%(i+2) == 0 {return false}}return true
}

题目:埃氏筛

题目链接:LeetCode-204. 计数质数
在这里插入图片描述

思路分析:埃氏筛法思想,逐步排除掉不是质数的数

如果 x 是质数,那么大于 x 的 x 的倍数 2x,3x,… 一定不是质数。
在这里插入图片描述

复杂度:时间复杂度 O ( n l o g l o g n ) O(n log log n) O(nloglogn)、空间复杂度 O ( n ) O(n) O(n)

  • 时间复杂度分析:
    • 外层循环的迭代次数是 n-2,即 O ( n ) O(n) O(n) 次。
    • 内层循环的迭代次数是在素数的情况下,从 i*i 开始,每次递增 i,直到 n。这是因为小于 i 的倍数在之前已经被标记为非质数。内层循环迭代次数约为 n/i,其中 i 为质数。因此,总的迭代次数为 n/2 + n/3 + n/5 + …,这个和式是 O ( n l o g l o g n ) O(n log log n) O(nloglogn)的。

Go代码

func countPrimes(n int) int {count := 0isNotPrimes := make([]bool, n)for i:=2; i<n; i++ {if !isNotPrimes[i] {count++for j:=i*i; j<n; j+=i {isNotPrimes[j] = true}}}return count
}

或者 下面这个语言更清晰,不过多了 O ( n ) O(n) O(n)的时间复杂度

func countPrimes(n int) (count int) {isPrimies := make([]bool, n)for i, _ := range isPrimies {isPrimies[i] = true}for i:=2; i<n; i++ {// 从2开始已经把2的所有倍数标记为false,3也是,所以剩下的未标记的都是质数if isPrimies[i] {count++// 直接从i*i开始标记,因为2i,3i...这些数一定在i之前就被其他数的倍数标记过了,例如2的所有倍数,3的所有倍数等for j:=i*i; j<n; j+=i {isPrimies[j] = false}}}return
}

题目:判断是不是丑数

题目链接:LeetCode-263. 丑数
在这里插入图片描述

思路分析:循环除2 3 5 判断最后值是否==1

复杂度:时间复杂度 O ( l o g n ) O(log n) O(logn)、空间复杂度 O ( 1 ) O(1) O(1)

  • 时间复杂度:取决于对n除以2 3 5的次数,由于每次至少将n除以2,所以除法运算的次数不会超过 O ( l o g n ) O(log n) O(logn)

Go代码

func isUgly(n int) bool {if n < 1 {return false}if n == 1 {return true}arr := [3]int{2,3,5}for _, v := range arr {for n%v == 0 {n = n/v}}return n == 1
}
http://www.yidumall.com/news/83919.html

相关文章:

  • 哪家公司建站的最近实时热点事件
  • 网站模板组件宁波网络推广外包
  • 廊坊营销型网站建设百度搜索排名怎么收费
  • 厦门网页建站申请比较好百度下载安装
  • 外国人做数学视频网站市场营销渠道
  • 1网站建设公司网站seo设置是什么
  • 十堰外贸网站建设全国疫情一览表
  • 高端网站建设 工业甘肃seo技术
  • 岳阳建网站页面seo是什么意思
  • 网站建设采用的技术什么平台推广效果最好
  • 网站开发工期安排表河南百度推广公司
  • 塑模毕业设计代做网站网店运营工资一般多少
  • 湖南营销网站建设设计南昌seo教程
  • 自己如何做黑客网站seo网站排名优化服务
  • 如何在云服务器上开多几个网站此网站服务器不在国内维护
  • 高端的网站建设公司哪家好站长工具whois查询
  • 网络营销方式及特点企业seo排名有 名
  • 电力网站怎么做互动营销案例都有哪些
  • php 学院网站免费发布推广信息的软件
  • 江西省建设工程安全质量监督管理局网站云南省最新疫情情况
  • 网站内链建设和外链的推广seo站长工具综合查询
  • 网站的当前位置导航如何做互联网广告推广是什么
  • 网页设计尺寸单位一般为江西seo推广方案
  • 网站开发与网站建设广告营销包括哪些方面
  • 辽宁建设工程信息网评标系统seo查询seo优化
  • wordpress打包app重庆seo培训
  • 做网站建设的公司有哪些内容重庆的seo服务公司
  • 做游戏ppt下载网站有哪些金昌网站seo
  • 网站建设的配置搜索引擎优化论文3000字
  • 做网站需要学会写代码吗新乡百度网站优化排名