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

郑州网站建设 郑州网站制作哪个网站找人做网页比较好

郑州网站建设 郑州网站制作,哪个网站找人做网页比较好,效果好企业营销型网站建设,昆明做网站优化数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合#xff0c;可以方便的通过下标索引的方式获取到下标下对应的数据。 1.数组下标都是从0开始的。 2.数组内存空间的地址是连续的。 正是因为数组的在内存空间的地址是连续的#xff0c;所以我们在删除或者增添…数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合可以方便的通过下标索引的方式获取到下标下对应的数据。 1.数组下标都是从0开始的。 2.数组内存空间的地址是连续的。 正是因为数组的在内存空间的地址是连续的所以我们在删除或者增添元素的时候就难免要移动其他元素的地址所以数组的元素是不能删的只能覆盖。 在C中二维数组在内存的空间地址是连续但在java中并不是连续的。 java中的数组排列方式如下所以Java的二维数组在内存中不是 3*4 的连续地址空间而是四条连续的地址空间组成 算法题 Leetcode 704.二分查找 题目链接:二分查找 大佬视频讲解手把手带你撕出正确的二分法 个人思路 题目要求是用二分法那具体步骤为找到数组中间的值将这个值循环与目标值对比1.若找到目标值放回下标2.没找到目标值的话则按照与目标值对比的大小重新选择范围再选择这个范围中的中间值继续对比但这其中比较难解决的是范围的确定。 解法 这道题目的前提是数组为有序数组同时题目还强调数组中无重复元素因此以后遇到此种类型都可以考虑使用二分法 二分法中对区间的定义很重要。区间的定义就是不变量。要在二分查找的过程中保持不变量就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作这就是循环不变量规则。 二分法第一种写法:左闭右闭 即[left, right]左闭右闭要注意以下两点 循环while中的判断条件 “(left right) ”要使用 因为left right是有意义的。目标值小于中间值右区间需要改变时right 要赋值为 mid - 1因为当前这个nums[middle]一定不是target。 class Solution {public int search(int[] nums, int target) {int left0;int rightnums.length-1;//定义target在左闭右闭的区间里[left, right]if(target nums[0]||targetnums[right-1]){//避免当 target 小于nums[0] nums[nums.length - 1]时多次循环运算return -1;}while(leftright){int midleft((right-left)1);//防止溢出; 是右移位运算符,相当于除以 2 并向下取整if(nums[mid]target){return mid;}else if(nums[mid]target){//target 在右区间即[mid 1, right]leftmid1;}else if(nums[mid]target){//target 在左区间即[left, mid- 1]rightmid-1;}}return -1;} } 时间复杂度:O(log n)折半循环 空间复杂度:O(1);没有使用多余空间 二分法第二种写法:左闭右开 即[left, right)左闭右开要注意以下两点 循环while中的判断条件“(left right)”这里使用 ,因为left right在区间[left, right)是没有意义的目标值小于中间值右区间需要改变时 right 更新为 mid因为下一个查询区间不会去比较nums[middle] class Solution {public int search(int[] nums, int target) {int left0;int rightnums.length;//定义target在左闭右开的区间里[left, right]if(target nums[0]||targetnums[right-1]){//避免当 target 小于nums[0] nums[nums.length - 1]时多次循环运算return -1;}while(leftright){int midleft((right-left)1);//防止溢出; 是右移位运算符,相当于除以 2 并向下取整if(nums[mid]target){return mid;}else if(nums[mid]target){//target 在右区间即[mid 1, right)leftmid1;}else if(nums[mid]target){//target 在左区间即[left, mid)rightmid;}}return -1;} } 时间复杂度:O(log n)折半循环 空间复杂度:O(1);没有使用多余空间 Leetcode27.移除元素 题目链接:27.移除元素 大佬视频讲解数组中移除元素并不容易 个人思路 因为数组的元素在内存地址中是连续的不能单独删除数组中的某个元素只能覆盖所以若要暴力解决的话得两次循环一次循环找与目标值对应的二次循环将删除元素其后面的元素向前赋值 这种解法慢也可以换成双指针来解决指针分为快慢指针快指针找需要删除的元素慢指针找新数组的下标 解法 暴力解法 双重循环 class Solution {public int removeElement(int[] nums, int val) {int len nums.length;for (int i 0; i len; i) {if (nums[i] val) { // 发现需要移除的元素就将数组集体向前移动一位for (int j i 1; j len; j) {nums[j - 1] nums[j];}i--; // 因为下标i以后的数值都向前移动了一位所以i也向前移动一位len--; // 此时数组的大小-1}}return len;} } 时间复杂度:O(n^2)两个for循环 n*n 空间复杂度:O(1);没有使用多余空间 快慢双指针 搞清楚双指针的定义非常关键快指针的作用是寻找新数组的元素 新数组就是不含有目标元素的数组慢指针的作用是指向更新 新数组下标的位置 class Solution {public int removeElement(int[] nums, int val) {int slow0;//慢指针for(int fast0;fastnums.length;fast){if(nums[fast]!val){//如果没有找到目标元素则一起向前遍历nums[slow]nums[fast];slow;}}return slow;} } 时间复杂度:O( n)一个for循环 空间复杂度:O(1);没有使用多余空间 以上是个人的思考反思与总结若只想根据系列题刷参考卡哥的网址代码随想录算法官网
http://www.pierceye.com/news/505506/

相关文章:

  • 遵义网站建设公司巴彦淖尔市网站制作
  • 后台管理系统网站模板合作网站登录制作
  • 腾讯云网站备案流程seo优化实训总结
  • 那个网站有免费的模板wordpress首页模板文件
  • 阿里云主机可以放几个网站手机上自己设计广告的软件
  • 南通公司企业网站建设淘宝网店制作
  • 长沙网站建设推广太仓网站建设企业网站
  • 加强网站微信信息编辑队伍建设网站设计 北京店
  • 广州网站建设有限公司程序员入门先学什么
  • 资源下载类网站如何做外链北京有几家宽带网络公司
  • 个人网站要有什么网页设计与制作初学者教程
  • 宁波品牌网站建设芗城区建设局网站
  • 仿卢松松博客网站源码购买网站空间多少钱
  • 无锡网站推微信公众号文章里好看的图片在哪个网站做
  • 做网站建设费用预算龙岩市建筑设计院
  • 网站做适配多少钱浙江建设厅特种考试查询
  • 简单的网站更新 关键词优化 关键词互联如何做网
  • 重庆网站seo搜索引擎优化网站qq登录 开发
  • 备案号放网站下面居中物流网站制作目的
  • 房产网站排名做情侣网站
  • 营销型网站建设推荐国内团购网站做的最好的是
  • 前端网站建设苏州高新区建设局网站管网
  • 中小企业网站建设中服务器的解决方案是网站建设推广总结
  • 东莞网站建设新闻资讯做赌场网站犯法么
  • wordpress怎么添加单页模版seo价格是多少
  • 网站域名有了_网站如何建设优书网首页
  • 宠物网站建设策划报告Wordpress is文章展示
  • 电子建设网站的目的阿里巴巴网站是用什么技术做的
  • 图形设计网站wordpress微信群多个二维码
  • 网站建设维护是干什么网站用户需求报告