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

有没有专门帮人做图的网站人际网络营销能做吗

有没有专门帮人做图的网站,人际网络营销能做吗,要给公司做一个网站怎么做的,网站制作企业有哪些公司题目 给定一个数组#xff0c;将数组中的元素向右移动k个位置#xff0c;其中k是非负数。要求如下#xff1a; #xff08;1#xff09;尽可能想出更多的解决方案#xff0c;至少有三种不同的方法可以解决这个问题。 #xff08;2#xff09;使用时间复杂度为O(n)和空间…题目 给定一个数组将数组中的元素向右移动k个位置其中k是非负数。要求如下 1尽可能想出更多的解决方案至少有三种不同的方法可以解决这个问题。 2使用时间复杂度为O(n)和空间复杂度为O(1)的原地算法解决这个问题。 示例 1 输入: [1, 2, 3, 4, 5, 6, 7] 和 k 3输出: [5, 6, 7, 1, 2, 3, 4]解释:向右旋转1步: [7, 1, 2, 3, 4, 5, 6]向右旋转2步: [6, 7, 1, 2, 3, 4, 5]向右旋转3步: [5, 6, 7, 1, 2, 3, 4] 示例 2 输入: [-8, -100, 50, 66] 和 k 2输出: [50, 66, -8, -100]解释:向右旋转1步: [66, -8, -100, 50]向右旋转2步: [50, 66, -8, -100] 解析 这道题主要考察应聘者从多个角度、多个维度分析和思考问题的能力。 最直接、最简单的解决方案当然是“暴力法”也就是每次将数组向右移动一个元素一共旋转k次。向右移动一个元素需要将最后一个元素移动到数组开头然后将其他元素依次右移。“暴力法”的时间复杂度为O(n*k)空间复杂度为O(1)。具体实现可参考下面的示例代码。这里我们使用了Rust标准库中的rotate_right方法它直接提供了按指定步数向右旋转数组的功能使得代码更为简洁。 fn rotate_array(arr: mut [i32], mut k: usize) {let n_len arr.len();k % n_len;arr.rotate_right(k); }fn print_array(arr: [i32]) {for item in arr.iter() {print!({} , item);}println!(); }fn main() {let mut data [1, 2, 3, 4, 5, 6, 7];rotate_array(mut data, 3);print_array(data); } “暴力法”的时间复杂度较高我们可以通过以空间换时间的方式来优化时间复杂度。具体做法为使用一个额外的数组来将每个元素放到正确的位置上也就是我们把原本数组里下标为i的元素放到(ik)%数组长度的位置最后我们把新的数组拷贝到原来的数组中。该方法的时间复杂度为O(n)空间复杂度也为O(n)。具体实现可参考下面的示例代码。这里我们使用to_vec()方法来创建原数组的一个拷贝然后通过索引操作和copy_from_slice()方法来完成数据的转移。 fn rotate_array(arr: mut [i32], k: usize) {let n_len arr.len();let mut data_bak arr.to_vec();for i in 0..n_len {data_bak[(i k) % n_len] arr[i];}arr.copy_from_slice(data_bak); }fn print_array(arr: [i32]) {for item in arr {print!({} , item);}println!(); }fn main() {let mut data vec![1, 2, 3, 4, 5, 6, 7];rotate_array(mut data, 3);print_array(data); } 实际上解决旋转数组的问题还可以通过三次反转数组来实现。第一次整体反转使原数组后k个元素位于前k个元素中但内部顺序正好相反。第二次反转只需要反转前k个元素。第三次反转只需要反转后n-k个元素。需要注意的是如果k大于数组的长度需要对k取模以保证不会超出数组的范围。 接下来我们来看看如何反转数组。反转数组指的是将数组的顺序颠倒比如给定数组为[1, 2, 3, 4, 5, 6, 7]则反转后的数组为[7, 6, 5, 4, 3, 2, 1]。可以通过双指针法来实现反转先交换数组的第一个数和最后一个数然后交换第二个数和倒数第二个数一直到数组中间即可。该方法的时间复杂度为O(n)空间复杂度也为O(1)。具体实现可参考下面的示例代码。这里我们通过三次反转数组的部分来完成整个数组的旋转。我们还使用了Rust的swap方法来交换数组中的元素并且利用了数组的可变引用mut [i32]来直接修改原数组内容。 fn reverse_array(arr: mut [i32], mut start: usize, mut end: usize) {while start end {arr.swap(start, end);start 1;end - 1;} }fn rotate_array(arr: mut [i32], k: usize) {let n_len arr.len();let actual_k k % n_len;reverse_array(arr, 0, n_len - 1);reverse_array(arr, 0, actual_k - 1);reverse_array(arr, actual_k, n_len - 1); }fn print_array(arr: [i32]) {for item in arr {print!({} , item);}println!(); }fn main() {let mut data [1, 2, 3, 4, 5, 6, 7];rotate_array(mut data, 3);print_array(data); } 总结 一个问题的解决方案可能远不止一种正所谓“条条大路通罗马”如何在众多解决方案中找出最优解实际上非常考验软件开发工程师的综合能力。从多个角度、多个维度分析和思考问题是一种非常有效的思维方式可以帮助我们更全面地理解问题并找到更好更优的解决方案。
http://www.dnsts.com.cn/news/83047.html

相关文章:

  • 画廊网站模板 frontpage网页ui设计网站
  • 模仿网站侵权吗女生做a视频的网站是什多少
  • 手机网站制作解决方案珠海市住房城乡建设局网站
  • 东阳市网站建设做调查问卷的网站
  • 没有网站怎么做百度竞价wordpress 首页判断
  • 什么是营销型的网站推广柳州网站建设优化推广
  • 广安 网站建设物流网站模板
  • 有网站源码怎么搭建网站营销型企业、公司网站案例
  • 购书网站开发的意义内容网站设计范例
  • 昆明参差网站支持asp的免费空间 适合钓鱼网站
  • app网站建设 - 百度网站搭建怎么收费呀
  • 网站建设单元格边距荆州市做网站的
  • 网站建设与管理自考本专业搜索服务网络公司
  • 网站设计是用ps做图吗为什么建设网站很多公司没有
  • 做零售去哪个外贸网站wordpress产品筛选
  • python做网站 要学多久网站管理模式
  • 网站备案 营业执照副本去除wordpress后台登录logo
  • 公司理念网站昆山网站优化公司
  • 企业网站建设与优化青岛网站定做
  • 北京好的网站建设wordpress产品发布插件
  • 南昌定制网站建设厦门人才网597人才网
  • 网站建设前期策划书地方门户网站的发展
  • 西安做企业网站哪家做的好高端建站模版
  • 省建设厅网站梁作庆交易网站开发
  • 西安网站建设q.479185700強租车网站制作方案
  • 网站icp备案网址免费网站app哪个好
  • 个人怎么做ipv6的网站域名邮箱如何注册
  • 开发网站的意义做导航网站用什么建站程序
  • 网站建设期任务及总结网站宣传片的创意
  • 网站空间购买哪个好zol软件下载