mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
更新 0977.有序数组的平方
This commit is contained in:
@ -21,14 +21,14 @@
|
||||
* 输入:nums = [-7,-3,2,3,11]
|
||||
* 输出:[4,9,9,49,121]
|
||||
|
||||
# 算法公开课
|
||||
## 算法公开课
|
||||
|
||||
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[双指针法经典题目!LeetCode:977.有序数组的平方](https://www.bilibili.com/video/BV1QB4y1D7ep),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
|
||||
|
||||
|
||||
# 思路
|
||||
## 思路
|
||||
|
||||
## 暴力排序
|
||||
### 暴力排序
|
||||
|
||||
最直观的想法,莫过于:每个数平方之后,排个序,美滋滋,代码如下:
|
||||
|
||||
@ -47,7 +47,7 @@ public:
|
||||
|
||||
这个时间复杂度是 O(n + nlogn), 可以说是O(nlogn)的时间复杂度,但为了和下面双指针法算法时间复杂度有鲜明对比,我记为 O(n + nlog n)。
|
||||
|
||||
## 双指针法
|
||||
### 双指针法
|
||||
|
||||
数组其实是有序的, 只不过负数平方之后可能成为最大数了。
|
||||
|
||||
@ -99,7 +99,8 @@ public:
|
||||
|
||||
## 其他语言版本
|
||||
|
||||
Java:
|
||||
### Java:
|
||||
|
||||
```Java
|
||||
class Solution {
|
||||
public int[] sortedSquares(int[] nums) {
|
||||
@ -141,7 +142,8 @@ class Solution {
|
||||
}
|
||||
```
|
||||
|
||||
Python:
|
||||
### Python:
|
||||
|
||||
```Python
|
||||
(版本一)双指针法
|
||||
class Solution:
|
||||
@ -176,7 +178,8 @@ class Solution:
|
||||
return sorted(x*x for x in nums)
|
||||
```
|
||||
|
||||
Go:
|
||||
### Go:
|
||||
|
||||
```Go
|
||||
func sortedSquares(nums []int) []int {
|
||||
n := len(nums)
|
||||
@ -196,7 +199,8 @@ func sortedSquares(nums []int) []int {
|
||||
return ans
|
||||
}
|
||||
```
|
||||
Rust
|
||||
### Rust:
|
||||
|
||||
```rust
|
||||
impl Solution {
|
||||
pub fn sorted_squares(nums: Vec<i32>) -> Vec<i32> {
|
||||
@ -217,7 +221,8 @@ impl Solution {
|
||||
}
|
||||
}
|
||||
```
|
||||
Javascript:
|
||||
### Javascript:
|
||||
|
||||
```Javascript
|
||||
/**
|
||||
* @param {number[]} nums
|
||||
@ -242,7 +247,7 @@ var sortedSquares = function(nums) {
|
||||
};
|
||||
```
|
||||
|
||||
Typescript:
|
||||
### Typescript:
|
||||
|
||||
双指针法:
|
||||
|
||||
@ -277,7 +282,7 @@ function sortedSquares(nums: number[]): number[] {
|
||||
};
|
||||
```
|
||||
|
||||
Swift:
|
||||
### Swift:
|
||||
|
||||
```swift
|
||||
func sortedSquares(_ nums: [Int]) -> [Int] {
|
||||
@ -305,7 +310,7 @@ func sortedSquares(_ nums: [Int]) -> [Int] {
|
||||
}
|
||||
```
|
||||
|
||||
Ruby:
|
||||
### Ruby:
|
||||
|
||||
```ruby
|
||||
def sorted_squares(nums)
|
||||
@ -323,8 +328,8 @@ def sorted_squares(nums)
|
||||
end
|
||||
```
|
||||
|
||||
### C:
|
||||
|
||||
C:
|
||||
```c
|
||||
int* sortedSquares(int* nums, int numsSize, int* returnSize){
|
||||
//返回的数组大小就是原数组大小
|
||||
@ -357,7 +362,8 @@ int* sortedSquares(int* nums, int numsSize, int* returnSize){
|
||||
}
|
||||
```
|
||||
|
||||
PHP:
|
||||
### PHP:
|
||||
|
||||
```php
|
||||
class Solution {
|
||||
/**
|
||||
@ -386,7 +392,7 @@ class Solution {
|
||||
}
|
||||
```
|
||||
|
||||
Kotlin:
|
||||
### Kotlin:
|
||||
|
||||
双指针法
|
||||
```kotlin
|
||||
@ -437,7 +443,7 @@ class Solution {
|
||||
}
|
||||
```
|
||||
|
||||
Scala:
|
||||
### Scala:
|
||||
|
||||
双指针:
|
||||
```scala
|
||||
@ -473,7 +479,8 @@ object Solution {
|
||||
}
|
||||
```
|
||||
|
||||
C#:
|
||||
### C#:
|
||||
|
||||
```csharp
|
||||
public class Solution {
|
||||
public int[] SortedSquares(int[] nums) {
|
||||
@ -504,3 +511,4 @@ public class Solution {
|
||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||
</a>
|
||||
|
||||
|
Reference in New Issue
Block a user