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

备案域名绑定网站建一个网站的手机电脑

备案域名绑定网站,建一个网站的手机电脑,北京网络营销,asp网站变成php双指针思想 双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。 定义快慢指针 快指针: 寻找新数组的元素 ,新数组就是不含有目标元素的数组 慢指针: 指向更新 新数组下…

双指针思想

双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。

定义快慢指针
快指针: 寻找新数组的元素 ,新数组就是不含有目标元素的数组
慢指针: 指向更新 新数组下标的位置

双指针法(快慢指针法)在数组链表的操作中是非常常见的,很多考察数组、链表、字符串等操作的面试题,都使用双指针法。
自我思考:两个指针也不一定是一快一慢,也可能是从中间开始一左一右的双指针,也可以是开头结尾的双指针,根据题目灵活变通双指针的应用。

1、移除元素 (经典双指针)

题目:

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
示例 1:给定 nums = [3,2,2,3], val =3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。
示例 2:给定 nums = [0,1,2,2,3,0,4,2], val = 2,函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。

解题:

class Solution {public int removeElement(int[] nums, int val) {int fast = 0;int slow = 0;for (fast = 0; fast < nums.length; fast++) {if(nums[fast] != val) {nums[slow] = nums[fast];slow ++;}}return slow;}
}

2、 比较含退格的字符串(两次循环的双指针)

题目:

给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空

实例1:

输入:s = “ab#c”, t = “ad#c”
输出:true
解释:s 和 t 都会变成 “ac”。

实例2:

输入:s = “ab##”, t = “c#d#”
输出:true
解释:s 和 t 都会变成 “”。

解题思路:对两个字符串分别进行退格操作,比较处理完毕后的字符串是否相同。

两个常用java函数:
str.toCharArray():将字符串转化为字符数组;
String.ValueOf(字符数组,开始下标,转化长度):将字符数组转化为字符串

解题:

class Solution {public boolean backspaceCompare(String s, String t) {return changeString(s).equals(changeString(t));}public String changeString(String str){char[] strChar = str.toCharArray();int index = 0;for (int i = 0; i < strChar.length; i++) {if ('#' != strChar[i]) {strChar[index++] = strChar[i];} else if (strChar[i] == '#' && index != 0) {index --;}}return String.valueOf(strChar,0,index);}
}

3、有序数组的平方(解题特殊点:数组升序,可前后两个指针向数组临界点比较)

题目:

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
输入:nums =[-4,1,0,3,10]
输出:[0,1,9,16,100]
输入:nums = [-7,-3,2,3,11]
输出:[4,9,9,49,121]
解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]

解题思路: 找到负数和非负数的临界点,从数组的两端向临界点比较大小并排序。

解题:

class Solution {public int[] sortedSquares(int[] nums) {int[] newNums = new int[nums.length];int left = 0,right = nums.length - 1,index = nums.length - 1;for (int i = 0; i < nums.length; i++) {if(nums[left] * nums[left] > nums[right] * nums[right]){newNums[index] = nums[left] * nums[left];left++;} else {newNums[index] = nums[right] * nums[right];right--;}index--;}return newNums;}
}
http://www.yayakq.cn/news/951690/

相关文章:

  • 阳朔到桂林汽车时刻表seo优化方案执行计划
  • 婚庆网站的设计意义广州市手机网站建设公司
  • 网站开发网页跳转到新的页面建设网站时 首先要解决两个问题 一是什么
  • 网站开发模式有哪些手机下载网页视频
  • 山东卓创网络网站建设京东网站建设策划书
  • 做php网站阿里云服务器个人网站的设计与实现主要技术指标
  • 学校网站怎么做的好处没有网站可以做淘宝客
  • 江门网站设计富阳有没有做网站的
  • 焦作市网站建设哪家好自己建服务器做网站违法
  • asp 网站建设教程wordpress博客 翻墙
  • 本子网站建设小程序怎么开发
  • 做响应网站的素材网站服装网站搭建计划书
  • 北沙滩网站建设公司深圳开发公司
  • 营销网站的策划方案怎么做东莞市外贸网站建设企业
  • 摄影网站网址大全提高网站打开速度
  • 网站改版工作方案东莞住建局网站
  • phpcms怎么做网站php在网站后台建设中的优势 张晋芳
  • 做网站设计用什么软件寺庙建设网站的意义
  • 手机怎么打开自己做的网站设计本质是什么
  • 制作网站系统网店培训机构
  • 如何在网站找做贸易的客户旅游网站怎么自己做
  • 海淀深圳网站建设公司wordpress 设置导航
  • 官网网站开发框架万能搜索
  • 怎么进入网站管理页面建设部标准定额司网站
  • 网站首页原型图银川网站建设nx110
  • 怎么用凡科做网站一个门户网站需要多大的空间
  • 网站建设询价织梦网站建设视频
  • 企业做网站最大的推广平台
  • 黑群辉建设个人网站视觉差的网站
  • 重庆网站设计黄页网页的推广