这是代码:
int sumDigits(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
我了解此代码,并且该代码将取个位数字,将该数字与总和相加,然后删除该数字。它一直这样做直到 n 等于 0,此时它将返回 sum。直观地,运行时间将是数字 N 中的位数。但我不明白为什么这个时间复杂度是 O(logN)。我以为是O(N)。
即使有这样的解释:“具有 d 位数字的数字可以具有高达 10^d 的值。如果 n = 10^d,则 d = log n。因此运行时间是 O(logN)。” 不完全点击。
我遵循第一部分,如果 d 是 3,则 value < 10^d == value < 1000。意思是最大值为 999,长度为 3,我同意。但在那之后,当他们建立联系时,如果 n = 10^d,我不明白 1)他们如何知道要进行相等和 2)这如何使复杂性变为 O(logN) 而不是 O(N)。
我现在正在阅读 Cracking the Coding Interview 这本书,并且正在做一个二叉树练习。有一段代码是根据这本书的O(NlogN),但是,我不明白为什么会这样。我可以理解算法是否为O(N),但我不知道logN他们的分析中来自何处。
int getHeight(TreeNode root) {
if (root == null) return -1; // Base case
return Math.max(getHeight(root.left), getHeight(root.right)) + 1;
}
boolean isBalanced(TreeNode root) {
if (root == null) return true; // Base case
int heightDiff = getHeight(root.left) - getHeight(root.right);
if (Math.abs(heightDiff) > 1) {
return false;
} else {
// Recurse
return isBalanced(root.left) && isBalanced(root.right);
}
}
Run Code Online (Sandbox Code Playgroud) 我知道React是前端,而NodeJS是允许Javascript代码在浏览器之外运行的后端。我不理解的(这是在网上跟随有关设置React项目和NodeJS项目的教程之后)的原因,为什么我必须分别创建一个实例。
例如,在我的React项目中,我设法创建了一个网站。但是因为需要后端,所以我决定使用NodeJS。但是我正在做NodeJS教程,我也可以使用NodeJS创建一个网站。我很困惑,因为现在,它的出现到是反应,做的NodeJS了同样的事情。
我之前从未使用过NodeJS,所以有点困惑。我给我的印象是,我只会使用NodeJS来托管后端,但是在看到我不得不使用NodeJS创建整个网站后,我不知道如何将React和NodeJS一起使用。
React和NodeJS两者如何集成在一起以创建功能全面的Web应用程序?我还没有看到在线的东西可以清楚地了解两者的相互作用。
我正在尝试使用 VueJS 用照片填充我的 index.html。我正在使用 iTunes API,并且返回链接正在返回图像的 URL。
我的问题是,我无法渲染照片。item是一个对象。
我试过这样做。但是,它会导致整个网页不显示(全白)。所以,这是完全错误的。最初, v-bind:src= 指向我文件夹中的一个图像。但我正在尝试动态获取 URL。
<div class="col-sm-4" style='max-width:200px;margin-right: 30px'>
<img style='width: 120%; display: inline; ' v-bind:src="{{ item.artworkUrl100 }}">
</div>
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我实际上可以在我的网页上看到其余的数据。但是,图像不显示。
<div class="col-sm-4" style='max-width:200px;margin-right: 30px'>
{{ item.artworkUrl100 }}
</div>
Run Code Online (Sandbox Code Playgroud)
我不确定如何使用 VueJS 语法将图像动态嵌入到我的网站中。