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

在线个人资料制作网站郑州网站推广公司电话

在线个人资料制作网站,郑州网站推广公司电话,开发公司资质需要什么证书,学做网站需要6.30 189. 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 **我的思路:**把nums[0]的数字放在nums[i]上面,把nums[i]的数字放在nums[0]上面 我的代码: function rotate(nums: number[], …

6.30 189. 轮转数组

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

**我的思路:**把nums[0]的数字放在nums[i]上面,把nums[i]的数字放在nums[0]上面

我的代码:

function rotate(nums: number[], k: number): void {let len = nums.length;let time = 0 ; while(time < k){//    把第一个作为放置数字的地方// 遍历数组for(let i = 1 ; i < len ; i++){// 把nums[0]的数字放在nums[i]上面,把nums[i]的数字放在nums[0]上面let temp = nums[i];nums[i] = nums[0];nums[0] = temp;}time ++;}
};

超出时间限制(内心骂了一万次)

这种方法的时间复杂度是O(n*k),当k较大时会导致时间超限。

官方解答:

  1. 三次反转法:这是最常用的方法,时间复杂度为O(n),空间复杂度为O(1)。

    function rotate(nums: number[], k: number): void {let len = nums.length;k = k % len; // 处理k大于数组长度的情况if (k === 0) return; // 如果k为0,直接返回fanzhuan(nums, 0, len - 1); // 翻转整个数组fanzhuan(nums, 0, k - 1);   // 翻转前k个元素fanzhuan(nums, k, len - 1); // 翻转剩下的元素
    }function fanzhuan(nums: number[], start: number, end: number): void {while (start < end) {let temp = nums[start];nums[start] = nums[end];nums[end] = temp;start++;end--;}
    }
    
  2. 使用额外数组:时间复杂度O(n),空间复杂度O(n)。

    哈哈,js里面如果赋值给nums,会新生成一个数组呢,对原数组没有影响

**总结:**虽然自己的想法时间有点超限,但是已经很好啦!多学学一些其他高校的算法

三次轮转法适用的地方:原地旋转、旋转步数较大、适用于任意旋转步数适、用于任何顺序的数组

6.30 121. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0

我的思路:

如果是暴力的话,先去找最小的价格,然后再最小的价格后面找最大的价格,两个价格相减

思路:动态地处理max:

因为max必须是大的减去小的,所以先设定一个min为prices[0],遍历价格数组,如果遇到比

min还小的就要更新min,如果是比min大的就要更新max

我的代码:

function maxProfit(prices: number[]): number {let min = prices[0] ; let max = 0 ;let i = 1 ; // 第一遍循环找到最小的价格for(i ;   i < prices.length ; i++){if(prices[i] < min){min = prices[i];}else {max = max > prices[i] - min ? max : prices[i] - min;}}return max  ;
};

总结:代码通过一次遍历数组,不断跟踪最低价格,并计算当天价格与最低价格的差值来更新最大利润。这是一种贪心算法的应用,思路清晰,时间复杂度是O(n),非常高效。

http://www.dtcms.com/wzjs/337359.html

相关文章:

  • 个人博客网站怎么赚钱网页在线代理翻墙
  • 长安网站建设制作app推广实名认证接单平台
  • 静安企业网站制作电商平台推广费用大概要多少
  • 代申请可信网站西安网站开发制作公司
  • 网站建设需要那些人推广赚钱app哪个靠谱
  • 360提交入口网址seo博客大全
  • 新闻视频网站开发马鞍山网站seo
  • 网站关键词优化推广哪家快故事性营销软文
  • 什么网站可以兼职做鸭子网络营销怎么做推广
  • 做网站需要留什么条件谷歌seo优化技巧
  • 深圳设计网站源码常德政府网站市民留言
  • 现在的那家做网站比较好一些呢百度公司
  • 西安做网站公司怎么样seo站长工具综合查询
  • html5 mysql 网站开发长春网站提升排名
  • 增加网站关键词百度小说风云榜排名
  • 动态网站建设方面的书百度手机助手app下载
  • 网站横幅代码关键词优化到首页怎么做到的
  • 龙岗附近做网站公司网站搜索优化方法
  • 搜索网站老是跳出别的网站要怎么做石家庄头条今日头条新闻
  • 济南智能网站建设哪家便宜googleplay安卓版下载
  • p2p网站制作怎样精选关键词进行网络搜索
  • 网站建设php的心得和体会百度风云榜游戏
  • 织梦cms 网站栏目管理淮北seo排名
  • 乐清高端网站建设国内b2b十大平台排名
  • 做网站销售好累广告投放平台公司
  • 广州优壹网络科技有限公司北京推广优化公司
  • 网站网页设计0基础学宁波seo公司网站推广
  • 哪个网站有做阿里巴巴流量黄页88网推广服务
  • 什么是网站解析自制网页
  • 广州市手机网站建设平台seo工资一般多少