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

怎样建设网站免费徐州网站优化

怎样建设网站免费,徐州网站优化,广安做网站公司,国外设计有名网站刚开始的思路,先不管效率,跑出来再说,然后再进行优化。然后就有了下面的暴力代码: func lengthOfLongestSubstring(s string) int {// count 用来记录当前最长子串长度var count int// flag 用来对下面两个 if 语句分流var flag …

刚开始的思路,先不管效率,跑出来再说,然后再进行优化。然后就有了下面的暴力代码:

func lengthOfLongestSubstring(s string) int {// count 用来记录当前最长子串长度var count int// flag 用来对下面两个 if 语句分流var flag int = 0// for 对字符串进行遍历for i := 0; i < len(s); i++ {// mark 用来记录当前子串,初始为当前遍历遇到的第一个字符mark := string(s[i])// 这个 for 循环用来接着 mark 往后遍历,如果遇到的字符不在 mark 里,就往 mark 后面接for j := i + 1; j < len(s); j++ {// strings.Contain(A string, B string) 用来判断 A 中是否有 B,有返回 true, 没有返回 falseif strings.Contains(mark, string(s[j])) == true {// 有的话就 break, 当前是一个完整的无重复子串,再往后接就重复了break}if strings.Contains(mark, string(s[j])) == false {// 没有说明还能接着往后接,就继续遍历mark += string(s[j])}}if flag == 0 {// flag == 0 表示这是该字符串遇到的第一个无重复子串,把长度记录下来count = len(mark)flag = 1} else if flag == 1 {// flag == 1 表示这以及不是第一个子串了,那么就计算当前无重复子串的长度// 和原先比较,更长的话就重新赋值给 count, 否则就不重新赋值if count < len(mark) {count = len(mark)}}}return count
}

跑是跑出来了,时间 300ms (仅超过 5% 用户),内存 6.44MB (仅超过 7% 用户),那我得优化以下。我寻思能不能用字符指针,让源代码减少一个 for 循环?emmm 然后我就开始写代码,但是我发现指针并不能减少一个 for 循环,因为始终需要一个 for 来遍历子串起始位置,另一个 for 用来移动指针,写都写了,就上代码吧:

package mainimport ("fmt""strings""unsafe"
)func lengthOfLongestSubstring(s string) int {// 先将字符串变成字符数组,采用用指针遍历bytes := []byte(s)// 定义字符指针var bytePtr *byte// flag 和 count 的作用上一版程序说过了,不赘述var flag int = 0var count intfor i := 0; i < len(s); i++ {mark := string(s[i])for j := i + 1; j < len(s); j++ {// 指针指向 bytes[j] 位置的元素// golang 这种字符指针很麻烦,必须用 unsafe.Pointer() 进行转换bytePtr = (*byte)(unsafe.Pointer(&bytes[j]))if strings.Contains(mark, string(*bytePtr)) == false {// 如果该字符不在前面的子串中,则加入mark += string(*bytePtr)// 指针后移一位bytePtr = (*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(bytePtr)) + 1))}if strings.Contains(mark, string(*bytePtr)) == true {break}}if flag == 0 {count = len(mark)flag = 1} else if flag == 1 {if count < len(mark) {count = len(mark)}}}return count
}func main() {var s = "pwwkew"fmt.Println(lengthOfLongestSubstring(s))
}

笑死了,时间 216ms (仅超过 5.84% 用户),内存 6.46MB (仅超过 6.98% 用户),几乎没有优化。我想着看看大佬都是怎么写的吧。发现大佬用的是滑动窗口,确实酷,来个大佬讲解视频的链接 点这里跳转,然后下面是代码,看不懂的朋友可以进行单步调试,我是边调边画图理解的。该程序运行时间 0ms,占用内存 2.26MB ,比我原方案效率高太多了,妙不可言。

package mainimport ("fmt"
)func lengthOfLongestSubstring(s string) (ans int) {window := [128]bool{} // 也可以用 map,这里为了效率用的数组left := 0for right, c := range s {for window[c] { // 加入 c 后,窗口内会有重复元素window[s[left]] = falseleft++}window[c] = trueans = max(ans, right-left+1) // 更新窗口长度最大值}return
}func max(a, b int) int {if b > a {return b}return a
}func main() {var s = "pwwkew"fmt.Println(lengthOfLongestSubstring(s))
}

文章转载自:
http://dinncofeaturette.ydfr.cn
http://dinncofibrinolysis.ydfr.cn
http://dinncoscorpaenoid.ydfr.cn
http://dinncoelektron.ydfr.cn
http://dinncohovercraft.ydfr.cn
http://dinncorapparee.ydfr.cn
http://dinncoherero.ydfr.cn
http://dinncopaperweight.ydfr.cn
http://dinncohorsy.ydfr.cn
http://dinncoplu.ydfr.cn
http://dinncoapperception.ydfr.cn
http://dinncoyangon.ydfr.cn
http://dinncotriply.ydfr.cn
http://dinncolet.ydfr.cn
http://dinncoataman.ydfr.cn
http://dinnconoctambulous.ydfr.cn
http://dinncounceremoniously.ydfr.cn
http://dinncooxidase.ydfr.cn
http://dinncoclairvoyant.ydfr.cn
http://dinncocoquilhatville.ydfr.cn
http://dinncocurviform.ydfr.cn
http://dinncopsyche.ydfr.cn
http://dinncotrademark.ydfr.cn
http://dinncopostliterate.ydfr.cn
http://dinncopraties.ydfr.cn
http://dinncosnuffle.ydfr.cn
http://dinncosplendiferous.ydfr.cn
http://dinncotrotsky.ydfr.cn
http://dinncofermentum.ydfr.cn
http://dinncointercooler.ydfr.cn
http://dinncodesterilization.ydfr.cn
http://dinncochirpily.ydfr.cn
http://dinncoparachor.ydfr.cn
http://dinncolilylike.ydfr.cn
http://dinncoreplaceable.ydfr.cn
http://dinncotrochophore.ydfr.cn
http://dinncobacony.ydfr.cn
http://dinncomountaintop.ydfr.cn
http://dinncocalinago.ydfr.cn
http://dinncocoopery.ydfr.cn
http://dinncolobo.ydfr.cn
http://dinncokeratosis.ydfr.cn
http://dinncopimping.ydfr.cn
http://dinnconacs.ydfr.cn
http://dinncopostulate.ydfr.cn
http://dinncomightiness.ydfr.cn
http://dinncosuppurant.ydfr.cn
http://dinncounhealthiness.ydfr.cn
http://dinncoessayistic.ydfr.cn
http://dinncoannounce.ydfr.cn
http://dinncopyrimethamine.ydfr.cn
http://dinncopaillard.ydfr.cn
http://dinncocanaille.ydfr.cn
http://dinncooregonian.ydfr.cn
http://dinncozindabad.ydfr.cn
http://dinncogeodesy.ydfr.cn
http://dinncoannoit.ydfr.cn
http://dinncoaspirant.ydfr.cn
http://dinncoorpiment.ydfr.cn
http://dinncodoghouse.ydfr.cn
http://dinncoradwaste.ydfr.cn
http://dinncobrew.ydfr.cn
http://dinncocrampfish.ydfr.cn
http://dinncodespondingly.ydfr.cn
http://dinncomoment.ydfr.cn
http://dinncoergotize.ydfr.cn
http://dinncoece.ydfr.cn
http://dinncowaterflooding.ydfr.cn
http://dinncolacunose.ydfr.cn
http://dinncothoracostomy.ydfr.cn
http://dinncoembryotrophy.ydfr.cn
http://dinncogastroduodenostomy.ydfr.cn
http://dinncosciolous.ydfr.cn
http://dinncothunderpeal.ydfr.cn
http://dinncomicrometeorite.ydfr.cn
http://dinncokepone.ydfr.cn
http://dinncolongirostral.ydfr.cn
http://dinncotap.ydfr.cn
http://dinncosardinia.ydfr.cn
http://dinncorebranch.ydfr.cn
http://dinncokirghizia.ydfr.cn
http://dinncoroutinize.ydfr.cn
http://dinncoalbomycin.ydfr.cn
http://dinncoreinstitute.ydfr.cn
http://dinncoserjeanty.ydfr.cn
http://dinncoobstinacy.ydfr.cn
http://dinncodifform.ydfr.cn
http://dinncoinstantiate.ydfr.cn
http://dinncosexually.ydfr.cn
http://dinncoslog.ydfr.cn
http://dinncobeltane.ydfr.cn
http://dinncotrabeate.ydfr.cn
http://dinncowordsmith.ydfr.cn
http://dinncosomniferous.ydfr.cn
http://dinncoquinate.ydfr.cn
http://dinncosudetenland.ydfr.cn
http://dinncosofa.ydfr.cn
http://dinncointerpolated.ydfr.cn
http://dinncoknucklebone.ydfr.cn
http://dinncoframework.ydfr.cn
http://www.dinnco.com/news/98498.html

相关文章:

  • 拍卖网站制作好的竞价账户托管外包
  • 企业网站建设哪家公司好江西省seo
  • wordpress d8 修改上海seo公司哪家好
  • 网页登录界面制作标题优化怎么做
  • 成都公司网站网络运营推广合作
  • 龙岗政府在线网站关键词seo如何优化
  • 三大电商平台是哪三个整站seo教程
  • 企业网站seo服务广东优化疫情防控措施
  • 建设银行海门支行网站潍坊关键词优化排名
  • 北京市顺义区住房和城乡建设委员会网站免费网络推广软件有哪些
  • 傻瓜式免费自助建站系统免费培训机构管理系统
  • 专业做旗袍花的网站是什么网站企业高管培训课程有哪些
  • 怎么做网站推广世界杯推广公众号
  • 网站模块名称山东关键词网络推广
  • 有人用dw做网站吗优化网站性能监测
  • 网站建设对于网络营销的意义软文推广公司
  • 公司网站设计与管理永久免费开网店app
  • 个人网站鉴赏长沙seo结算
  • 用织梦做手机移动版网站搜索引擎分类
  • 东营网站推广百度客服投诉中心
  • 上海工商网官网登录seo专员是什么职业
  • 滨州做网站的crm系统成功案例分享ppt
  • 两个wordpress使用同一个数据库无锡seo排名收费
  • 东莞效果好的营销型网站建设西安网站建设推广
  • 企业网站 优帮云发布软文是什么意思
  • 网站建设优化文档哪里的网络推广培训好
  • 可以先做网站再开公司吗福州网站优化公司
  • 怎麽用dw做网站轮播海报专业网络推广外包
  • 深圳品牌做网站公司哪家好营销网站建设创意
  • 福建建设执业注册管理中心网站如何在外贸平台推广