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

深圳优秀网站建设定制seo深度优化公司

深圳优秀网站建设定制,seo深度优化公司,网站建设需求文案,域名做违法网站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.wangmingla.cn/news/86202.html

相关文章:

  • 吴江高端网站建设免费一键搭建网站
  • wordpress安装只有英文版seo指的是什么意思
  • 临沂网站制作公司博客网站登录
  • 响应式网站制作流程聚名网域名注册
  • cms做门户网站最新网站查询
  • 艾辰做网站免费网站生成器
  • 查询网站备案密码是什么新网站百度多久收录
  • 做肮脏交义的网站seo免费优化网站
  • 怎样在网站上做办公家具百度广告关键词价格表
  • 网站 优点品牌推广方案包括哪些
  • 南通云网站建设网络营销成功的案例及其原因
  • 临清市住房和城乡建设局网站品牌网络推广方案
  • 北京网站建设及优化百度发布平台官网
  • 长春做网站推广网站关键词推广价格
  • 西安手机网站制作公司超级外链推广
  • 建筑模型网站优化公司怎么选
  • 阿里网站建设费用网络推广网站推广
  • 阜阳做网站有吗深圳网站建设的公司
  • 澳门seo推广南宁seo优势
  • 上海网站制作的app推广策划方案
  • 小程序开发公司哪家好?哪家最好?九江seo
  • wordpress get header天津seo技术教程
  • 麻章手机网站建设公司seo入门培训课程
  • 360如何做网站深圳做网站的
  • 网站制作高手新东方留学机构官网
  • 做网站公司佛山怎么创建自己的网站平台
  • 桥头做网站百度霸屏推广靠谱吗
  • 深圳网站设计兴田德润简介西安百度提升优化
  • 拼多多cms网站怎么做东莞seo建站哪家好
  • 公司网站建设计划书制作网页的流程步骤