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

做网站工作室名字郑州东区做网站电话

做网站工作室名字,郑州东区做网站电话,wordpress首页友情链接插件,智能路由器 建网站Day01 轮转数组 思路: (1) 使用O(1) 空间复杂度解决,就需要原地解决,不能创建新的数组。 (2) 先整体反转数组,再反转前k个数,再反转剩下的数。即可完整本题。 &…

Day01

  1. 轮转数组

思路:

(1) 使用O(1) 空间复杂度解决,就需要原地解决,不能创建新的数组。

(2) 先整体反转数组,再反转前k个数,再反转剩下的数。即可完整本题。

(3) 所以需要定义一个方法实现反转这个功能,该方法接受三个参数:数组,起始索引,终止索引。

完整代码如下:

class Solution {
​public void rotate(int[] nums, int k) {
​
•    int n = nums.length;
​
•    k %= n; // 轮转 k 次等于轮转 k%n 次
​
•    reverse(nums, 0, n - 1);
​
•    reverse(nums, 0, k - 1);
​
•    reverse(nums, k, n - 1);
​}
​private void reverse(int[] nums, int i, int j) {
​
•    while (i < j) {
​
•      int temp = nums[i];
​
•      nums[i++] = nums[j];
​
•      nums[j--] = temp;
​
•    }
​}
​
}

  1. 在排序数组中查找元素的第一个和最后一个位置

思路:

(1) 从前往后依次遍历,找到目标值在数组中第一次出现的位置,终止此次循环。

(2) 从后往前遍历,找到目标值在数组中最后一次出现的位置,终止此次循环。

代码:

 class Solution {
​
•    public int[] searchRange(int[] nums, int target) {
​
•      int start = -1;
​
•      int end = -1;
​
•      int length = nums.length;
​
•      // 查找开始位置
​
•      for (int i = 0; i < length; i++) {
​
•        if (nums[i] == target) {
​
•          start = i;
​
•          break; // 找到第一个位置后可以结束
​
•        }
​
•      }
​
•      // 查找结束位置
​
•      for (int i = length - 1; i >= 0; i--) {
​
•        if (nums[i] == target) {
​
•          end = i;
​
•          break; // 找到最后一个位置后可以结束
​
•        }
​
•      }
​
•      return new int[] {start, end};
​
•    }
​}

  1. 字符串解码

思路:

(1) 从前往后遍历字符串,如果当前字符是字母,则直接添加到res字符串中。

(2) 如果当前字符是'[',则将当前res存储到特定栈中,并将multi也存储到对应的特定栈中。并重置res和multi。

(3) 如果当前字符是']',则将栈中的res和multi都取出来,其中res重复multi次,添加到一个temp字符串中。

(4) 如果当前字符是数字,则将multi的值*10再加上当前的数字,乘以10的目的是为了当数字为多位数时,确保正确拼接为一个正确的数字。

代码:

class Solution {
​public String decodeString(String s) {
​
•    StringBuilder res = new StringBuilder();  // 存储当前解码的结果
​
•    int multi = 0;               // 当前重复次数
​
•    LinkedList<Integer> stack_multi = new LinkedList<>();  // 存储之前的重复次数
​
•    LinkedList<String> stack_res = new LinkedList<>();    // 存储之前的解码结果
​
•    // 遍历每个字符
​
•    for(Character c : s.toCharArray()) {
​
•      if(c == '[') {
​
•        // 遇到 '[' 时,先保存当前的重复次数和解码结果
​
•        stack_multi.addLast(multi);  // 保存当前的重复次数
​
•        stack_res.addLast(res.toString());  // 保存当前解码结果
​
•        multi = 0;  // 重置重复次数
​
•        res = new StringBuilder();  // 重置解码结果
​
•      }
​
•      else if(c == ']') {
​
•        // 遇到 ']' 时,进行解码操作
​
•        StringBuilder temp = new StringBuilder();
​
•        int cur_multi = stack_multi.removeLast();  // 获取并移除之前保存的重复次数
​
•        for(int i = 0; i < cur_multi; i++) {
​
•          temp.append(res);  // 将当前结果重复指定次数
​
•        }
​
•        res = new StringBuilder(stack_res.removeLast() + temp);  // 拼接之前的解码结果和重复部分
​
•      }
​
•      else if(c >= '0' && c <= '9') {
​
•        // 如果是数字,将其转换为数字并更新重复次数
​
•        multi = multi * 10 + Integer.parseInt(c + "");
​
•      }
​
•      else {
​
•        // 如果是字母,直接添加到当前的解码结果中
​
•        res.append(c);
​
•      }
​
•    }
​
•    return res.toString();  // 返回最终解码的字符串
​}
​
}
http://www.yayakq.cn/news/198354/

相关文章:

  • 你需要网站建设广州新塘网站建设
  • 苏州建筑类网站建设前端做网站需要的技能
  • 餐饮设计公司网站wordpress查看需要密码
  • 做外国美食的视频网站wordpress oa
  • 网站建设项目投资测算wordpress添加前台
  • 定制手机微网站第一ppt课件免费下载官网
  • 网站宽度设计php查询信息 wordpress插件
  • h5商城网站怎么建立淘宝网网页版官网
  • doku做网站抚顺外贸网站建设
  • 公司网站制作专业公司品牌高端网站建设
  • 备案服务网站长沙建网站要多少钱
  • 网站作品欣赏江苏扬州工程建设信息网站
  • 藁城网站建设哪家好河北省住房和城乡建设局网站
  • 梧州网站建设厂家呼和浩特公司网页设计
  • 湖南环达公路桥梁建设总公司网站服务器 多个网站
  • 搭建本地视频网站wordpress 推荐 主题
  • 一个空间放2个网站网站开发 程序开发原理
  • 企业做网站价格健身网站开发过程中遇到的麻烦
  • 简洁网站模板素材广州做网站建设
  • 建设户外腰包网站wordpress p
  • 北京怎样在社保网站上做减员自己能做网站吗
  • 藁城专业网站建设怎么在百度上面做网站
  • 做公众号策划的网站海南省住房公积金管理局网上办事大厅
  • 网页设计作业制作个人网站智慧团建注册登录入口手机版下载
  • 网站开发辅助工具南京百度快速排名优化
  • 国外网站的建设手机如何做网页
  • 推介做resume的网站cdn wordpress 回复
  • dt网站设计thea wordpress
  • 哈尔滨网站建设外包公司广州品牌建站广州品牌建站
  • 企业官方网站开发平台网站正在建设中 英语