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

番禺网站建设外包龙游网站建设

番禺网站建设外包,龙游网站建设,在线教育网站设计,学院网站建设管理办法1.整数除法 思想#xff1a;不能用除法、乘法、取余#xff0c;那么可以用减法完成除法的操作#xff0c;但是在减去被除数的时候#xff0c;可以考虑被除数1扩大一倍在进行减少#xff0c;加快减的速率。 2.二进制加法 思想#xff1a;从末尾向前遍历#xff0…1.整数除法 思想不能用除法、乘法、取余那么可以用减法完成除法的操作但是在减去被除数的时候可以考虑被除数1扩大一倍在进行减少加快减的速率。 2.二进制加法 思想从末尾向前遍历类似这种有长短不一的需要累计的时候可以采用for i0 || j 0 {内部在进行判断该值是否有贡献} 3.前n个数二进制1的个数 这里隐藏着2的倍数和之间二进制1的个数的关系2和4的二进制个数相等。 4.出现1次的数字其余都是三次 原版本是找出出现一次的数字其余都是出现两次这个只需要全部异或就能得出答案但是出现三次的要进行过滤的话需要从二进制的角度去考虑某一位数组中累积和事3的倍数的话这一位置肯定是出现三次的否则是一位中的。注意go语言中int是变化的在这个题目中需要指定int32否则会出现溢出的情况。 5.单词长度最大的乘积 题目要求两个字符串之间没有字符交集 暴力做法在单词数组中找出两个互补包含相同字符的串的乘积的最大值思路是采用暴力双层遍历先对数组按照字符串的长度进行降序排序关键是如何快速判断两个字符串包含相同的字符超时做法是用一个map记录a然后在判断b取巧的方式是采用strings.indexByte内置的api。 二进制做法(位运算)因为字符串只包含小写的英文字母那么判断两个字符串是否有相同的字符可以考虑将字符串转换成数字通过ab 0 表示字符串没有共同字符。 6.排序数组中找出两个数之和等于target 方法一直接采用二分查找去做方法二可以采用变循环边加入map通过map[tar-val]判断是否存在一遍就能找出答案。 7.找出数组中三数之和为零的数 先排序然后可以用两层遍历去重复判断i ! 0 nums[i] ! nums[i-1最后一维可以采用二分查找来做。 8.找出最短的字数组的和大于等于target的长度 暴力法先计算前缀和然后通过暴力从短到长的进行判断。 滑动窗口由小窗口在逐渐变大达到目的值的时候在逐渐减少数组都是正数。 func numSubarrayProductLessThanK(nums []int, k int) int {res : 0left : 0right : 0cv : 1for right len(nums){cv * nums[right]for left right cv k { // 如果当前的滑动窗口需要进行变化cv / nums[left]left}res res (right - left 1) // 含义以right结尾的所有满足条件字数组的情况right}return res } 前缀和二分查找由于本题目的前缀和是递增的因此也可以考虑用二分查找需要的值 9.找出子数组中积少的target的个数 滑动窗口(数组中都为正数) func numSubarrayProductLessThanK(nums []int, k int) int {res : 0left : 0right : 0cv : 1for right len(nums){cv * nums[right]for left right cv k { // 如果当前的滑动窗口需要进行变化cv / nums[left]left}res res (right - left 1) // 含义以right结尾的所有满足条件字数组的情况right}return res } 10.和为k的子数组 很容易根据上面题目联想到使用滑动窗口但是这题目nums中包含非正数这导致了滑动窗口不知道往哪边滑因此不能采取。 暴力法枚举出所有的情况最后几个用例超时了(暴力写法纠正)纠正暴力写法之后通过。 动态规划法让我想到了01背包问题01背包包括是否重复选但是这里又和01重复选背包不同这里要求是连续数组。 可以采用前缀和加map一层遍历解决思想和找出数组中两数之和为tar的方法一样。 遍历map写法只要target确定可以考虑这种写法  func subarraySum(nums []int, k int) int {count, pre : 0, 0m : map[int]int{}m[0] 1for i : 0; i len(nums); i {pre nums[i]if _, ok : m[pre - k]; ok {count m[pre - k]}m[pre] 1}return count } 暴力写法的纠正  // 通过写法 func subarraySum(nums []int, k int) int {preSum : make([]int , len(nums))cv : 0res : 0for i : 0 ; i len(nums); i{cv nums[i]preSum[i] cv}// fmt.Println(preSum)for i : 0 ; i len(nums); i{for j : i ; j len(nums); j{cv : preSum[j]if i ! 0{cv - preSum[i-1]}if cv k{res }}}return res } // 超时写法很好理解代码的思路但是超时 func subarraySum(nums []int, k int) int {preSum : make([]int , len(nums))cv : 0res : 0for i : 0 ; i len(nums); i{cv nums[i]preSum[i] cv}// fmt.Println(preSum)for clen: 1; clen len(nums); clen{for i : 0 ; i len(nums) - clen; i{j : i clen - 1if j len(nums){break}cv : preSum[j]if i ! 0{cv - preSum[i-1]}if cv k{res}// fmt.Println(cv)}}return res }
http://www.dnsts.com.cn/news/243101.html

相关文章:

  • 海洋牧场网站建设福州php做网站
  • 网站建设服务器配置天津网站优化软件
  • 网站备案收费标准关键词大全
  • 为网站的特色功能设计各种模板创意设计产业
  • 网站 手机案例传奇设计师身亡
  • asp.net 网站 项目 区别静海网站建设制作
  • 如何做网站运营呢大数据公司排名
  • 怎么做本地网站论坛程序
  • 中文网站建设公司排名微信客户端app下载
  • 网站设计的基本步骤和方法低价做营销企业网站
  • 移动网站尺寸中国互联网协会卢卫
  • 中国建设银行总行网站js网站登录怎么做
  • 设计网站公司有哪些旅游网页设计图
  • 可以做全景的网站网站建设培训公司排名
  • 做毕业设计网站的步骤青岛外贸公司联系方式
  • 三屏网站建设手机网站宽度多少合适
  • 如何提升网站的收录量wordpress 文章编辑器
  • 网站建设前的问卷大连做企业网站哪家好
  • 官网站超链接怎么做延边网站开发
  • 网站优化案例校园网络安全设计方案
  • 网站推广的岗位要求网站建设好了还要收取维护费
  • 宁国做网站html5国内网站建设
  • 唐山做网站价格旅游网站建设经济评价
  • 公司的网站建设要记到什么科目焦作建设企业网站公司
  • html做网站标题的代码网页设计指的是什么
  • 深圳有哪些网站公司建设促销网站前的市场分析
  • rust做网站桂林漓江官网
  • 手表拍卖网站有几个网站打不开
  • 三网合一网站建设全包费用玄武模板网站制作点击查看
  • 网站建设服务的会计处理全媒体运营师报考官网在哪里