JavaScript 程序检查给定数字的所有旋转是否大于或等于给定数字
在本文中,我们将通过一个 JavaScript 程序来检查给定数字的所有旋转是否大于或等于给定数字。我们将编写一个算法并解释我们正在做的每一步。将要讨论的代码的时间复杂度将是乐观的,而空间复杂度将从一种代码到另一种代码都会得到改善。
问题简介
在这个问题中,我们得到一个数字,我们必须检查每个旋转是否都大于当前数字,或者简单地我们必须找到小于当前数字的当前数字的旋转如果轮换中存在较小的数字,那么我们将返回 false,否则我们将返回 true。
给定数字的旋转
示例
给定数字的旋转可以有顺时针或逆时针两种类型。在顺时针旋转中,我们从数字中取出最后一位数字并将其添加到第一个数字之前。例如 -
var number = 1234 var last_digit = number%10; number /= 10; number = Math.floor(number) var answer = last_digit.toString() + number.toString(); console.log("The first rotation of the given number is: " + answer)
在上面的代码中,我们给出了一个数字,我们必须找到给定数字的第一次旋转。首先,我们将当前数字的最后一位存储在另一个变量中,然后通过将给定数字除以 10 并取下限来删除该数字的最后一位。
最后,我们在最后一位数字后面附加了当前数字,这给了我们第一次旋转。
示例
要获取当前数字的下一个旋转或第二个旋转,我们可以获取第一个旋转的下一个旋转,甚至我们可以通过对任何旋转通用的另一种方法来实现,让我们通过代码来看看 -
var number = 1234 var i = 2 var n_string = number.toString() var last_i_elements = n_string.substring(n_string.length-i); var answer = last_i_elements+ n_string.substring(0,n_string.length-i); console.log("The ith rotation of the given number is: " + answer)
在上面的代码中,我们给出了一个数字,我们必须找到给定数字的第 i 次旋转。首先,我们将当前数字的最后“i”位存储在另一个变量中。
最后,我们在包含最后“i”数字的字符串后面附加了当前数字,这给了我们第一次旋转。
上面讨论的方法是顺时针旋转数字,逆时针旋转我们必须从前面选择数字并将其附加到最后。
当没有指定我们必须选择哪种旋转方式时,我们会选择顺时针方向。因此,在示例中,我们将看到顺时针旋转。
方法
这种方法是暴力方法,在这种方法中,我们将找到给定数字的每次旋转,并检查每个更大的数字。如果我们发现任何小于当前数字的数字,那么我们将返回 false,否则返回 true。
示例
首先让我们看一下代码,然后我们将转向代码的解释 -
function check(number,i){ var n_string = number.toString() var last_i_elements = n_string.substring(n_string.length-i); var answer = last_i_elements+ n_string.substring(0,n_string.length-i); if(answer < n_string){ return false; } return true; } var number = 12345 // checking for every rotation var ans = true; for(var i=1;i<number.toString().length;i++){ ans = check(number,i); if(ans == false){ break; } } if(ans == true){ console.log("There is no rotation present which is less then given number") } else{ console.log("There is a rotation of given number present which is less then given number") }
在上面的程序中,首先我们在 for 循环中从 1 迭代到数字的大小减 1,以得到从 1 到大小减 1 的每次旋转。在每次迭代中,我们调用了一个预定义的函数。
在函数中,我们将获取第 i 个旋转,该旋转作为参数传递给函数并与给定的数字进行比较。如果第 i 次旋转小于给定的数字,那么我们将返回 false 作为返回值,否则返回 true。
我们维护了一个名为answer的变量,它将存储从函数返回的真值和假值,并根据要求打印答案。
时间和空间复杂度
在上面的代码中,我们总共调用了 check() 函数 n 次,其中 n 是给定数字的大小。在函数内部,我们创建了一个子字符串,它是给定数字的副本,并进行 n 次迭代,这意味着我们使用了 n*n 次。因此,给定函数的时间复杂度为 O(N*N)。
在检查函数中,每次我们创建给定数字的副本时,这意味着我们正在使用额外的 N 空间。因此,给定函数的空间复杂度为 O(N)。
总体思路
在上面的代码中,如果所有数字都不同,那么我们只需 O(N) 时间复杂度和 O(1) 空间复杂度即可得到答案,因为如果任何数字小于第一个数字,则意味着存在一个与初始数量相比,在精确的一轮旋转中,数字可能会更少。
结论
在本教程中,我们通过一个 JavaScript 程序来检查给定数字的所有旋转是否大于或等于给定数字。程序的时间复杂度为 O(N*N),空间复杂度为 O(N),其中 N 是给定数字的大小。我们已经实现了一个程序,我们可以找到给定数字的每次旋转并与原始数字进行比较。
以上是JavaScript 程序检查给定数字的所有旋转是否大于或等于给定数字的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript字符串替换方法详解及常见问题解答 本文将探讨两种在JavaScript中替换字符串字符的方法:在JavaScript代码内部替换和在网页HTML内部替换。 在JavaScript代码内部替换字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 该方法仅替换第一个匹配项。要替换所有匹配项,需使用正则表达式并添加全局标志g: str = str.replace(/fi

本教程向您展示了如何将自定义的Google搜索API集成到您的博客或网站中,提供了比标准WordPress主题搜索功能更精致的搜索体验。 令人惊讶的是简单!您将能够将搜索限制为Y

本文系列在2017年中期进行了最新信息和新示例。 在此JSON示例中,我们将研究如何使用JSON格式将简单值存储在文件中。 使用键值对符号,我们可以存储任何类型的

增强您的代码演示:开发人员的10个语法荧光笔 在您的网站或博客上共享代码片段是开发人员的常见实践。 选择合适的语法荧光笔可以显着提高可读性和视觉吸引力。 t

因此,在这里,您准备好了解所有称为Ajax的东西。但是,到底是什么? AJAX一词是指用于创建动态,交互式Web内容的一系列宽松的技术。 Ajax一词,最初由Jesse J创造

利用轻松的网页布局:8个基本插件 jQuery大大简化了网页布局。 本文重点介绍了简化该过程的八个功能强大的JQuery插件,对于手动网站创建特别有用

本文介绍了关于JavaScript和JQuery模型视图控制器(MVC)框架的10多个教程的精选选择,非常适合在新的一年中提高您的网络开发技能。 这些教程涵盖了来自Foundatio的一系列主题

核心要点 JavaScript 中的 this 通常指代“拥有”该方法的对象,但具体取决于函数的调用方式。 没有当前对象时,this 指代全局对象。在 Web 浏览器中,它由 window 表示。 调用函数时,this 保持全局对象;但调用对象构造函数或其任何方法时,this 指代对象的实例。 可以使用 call()、apply() 和 bind() 等方法更改 this 的上下文。这些方法使用给定的 this 值和参数调用函数。 JavaScript 是一门优秀的编程语言。几年前,这句话可
