- 浏览: 137646 次
文章分类
- 全部博客 (189)
- Tree (14)
- Dynamic Programming (34)
- Array (20)
- Search (1)
- Hash (12)
- Backtracking (22)
- Divide and Conque (8)
- Greedy (6)
- Stack (12)
- software (0)
- List (7)
- Math (22)
- Two pointers (16)
- String (20)
- Linux (1)
- Sliding Window (4)
- Finite State Machine (1)
- Breadth-first Search (7)
- Graph (4)
- DFS (6)
- BFS (3)
- Sort (9)
- 基础概念 (2)
- 沟通表达 (0)
- Heap (2)
- Binary Search (15)
- 小结 (1)
- Bit Manipulation (8)
- Union Find (4)
- Topological Sort (1)
- PriorityQueue (1)
- Design Pattern (1)
- Design (1)
- Iterator (1)
- Queue (1)
最新评论
-
likesky3:
看了数据结构书得知并不是迭代和递归的区别,yb君的写法的效果是 ...
Leetcode - Graph Valid Tree -
likesky3:
迭代和递归的区别吧~
Leetcode - Graph Valid Tree -
qb_2008:
还有一种find写法:int find(int p) { i ...
Leetcode - Graph Valid Tree -
qb_2008:
要看懂这些技巧的代码确实比较困难。我是这么看懂的:1. 明白这 ...
Leetcode - Single Num II -
qb_2008:
public int singleNumber2(int[] ...
Leetcode - Single Num II
Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].
[分析] 用到的技巧,全局reverse再局部reverse完成偏移若干位操作。
For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].
[分析] 用到的技巧,全局reverse再局部reverse完成偏移若干位操作。
public class Solution { // method 1: time O(N), space O(N) public void rotate1(int[] nums, int k) { if (nums == null || nums.length == 0 || k % nums.length == 0) return; int n = nums.length; k = k % n; int[] tmp = new int[k]; for (int i = 0; i < k; i++) { tmp[i] = nums[n - k + i]; } for (int i = n - k - 1; i >= 0; i--) { nums[i + k] = nums[i]; } for (int i = 0; i < k; i++) { nums[i] = tmp[i]; } } // method 2: time O(k * n), space O(1), timeout public void rotate2(int[] nums, int k) { if (nums == null || nums.length == 0 || k % nums.length == 0) return; int n = nums.length; k = k % n; if (k < n / 2) { for (int i = 0; i < k; i++) { int tmp = nums[n - 1]; for (int j = n - 1; j > 0; j--) { nums[j] = nums[j - 1]; } nums[0] = tmp; } } else { for (int i = 0; i < k; i++) { int tmp = nums[0]; for (int j = 0; j < n - 1; j++) { nums[j] = nums[j + 1]; } nums[n - 1] = tmp; } } } // method 3: time O(n), space O(1) public void rotate(int[] nums, int k) { if (nums == null || nums.length == 0 || k % nums.length == 0) return; int n = nums.length; k = k % n; reverse(nums, 0, n - 1); reverse(nums, 0, k - 1); reverse(nums, k, n - 1); } public void reverse(int[] nums, int left, int right) { while (left < right) { int tmp = nums[left]; nums[left] = nums[right]; nums[right] = tmp; left++; right--; } } }
发表评论
-
Leetcode - H-Index
2015-09-06 09:08 1124Given an array of citations (ea ... -
Leetcode - Add Binary
2015-08-21 09:28 470[分析] 从低位往高位逐位相加,就是这么一个简单的题却花了我一 ... -
Leetcode - Longest Consecutive Sequence
2015-08-20 21:20 488[分析] base version说几句: 数组题一定要考虑重 ... -
Leetcode - First Missing Positive
2015-08-20 07:45 655[分析] 将各个正数放入相应下标处,使之满足nums[nums ... -
Leetcode - Set Matrix Zeros
2015-08-19 20:55 557Given a m x n matrix, if an ele ... -
Leetcode - Rotate Image
2015-08-19 19:51 500[分析] 自己的思路:从外到内一圈圈顺时针旋转90度,坐标映射 ... -
Missing Ranges
2015-08-19 09:48 515[分析] 此题若不考虑极大值极小值相关的corner case ... -
Leetcode - 3Sum Smaller
2015-08-18 22:12 1490Given an array of n integers nu ... -
Leetcode - Spiral Matrix II
2015-08-18 19:49 500Given an integer n, generate a ... -
Leetcode - Spiral Matrix
2015-08-18 09:50 431Given a matrix of m x n element ... -
Leetcode - Contains Duplicate II
2015-08-18 07:57 563Given an array of integers and ... -
Leetcode - Shortest Word Distance II
2015-08-18 07:25 1364This is a follow up of Shortest ... -
Leetcode - Shortest Word Distance III
2015-08-17 22:05 1669This is a follow up of Shortest ... -
Leetcode - Shortest Word Distance
2015-08-17 22:01 925Given a list of words and two w ... -
Leetcode - Insert Interval
2015-08-14 10:12 629[分析] 这道题思路直接,但bug free需要费些心力。第一 ... -
Leetcode - Valid Sudoku
2015-07-30 21:57 474Determine if a Sudoku is valid, ... -
Leetcode - House Robber II
2015-05-20 22:34 772Note: This is an extension of ... -
Leetcode - Largest Rectangle in Histogram
2015-05-20 07:53 495Given n non-negative integers ... -
MockInterview-IPRangeData Find&Insert
2015-04-12 08:09 0[题目] Finding the IP address w ... -
Leetcode - MissingRange
2015-03-31 09:25 452Given a sorted integer array ...
相关推荐
### LeetCode-CPP刷题知识点概述 #### 一、引言 《LeetCode-CPP刷题》是一本针对程序员面试及算法训练的书籍,由戴方勤编著,旨在帮助读者提升解决算法问题的能力,特别是在准备北美乃至全球范围内技术公司的面试时...
Rotate Array (旋转数组) #数组 33. Search in Rotated Sorted Array(搜索旋转排序数组)#数组 2020/12/08 19. Remove Nth Node From End of List(删除链表的倒数第N个节点) 153. Find Minimum in Rotated Sorted...
标题“_leetcode-python.pdf”所指的知识点: 该标题表明此文件是一份关于LeetCode的Python解题集。LeetCode是一个面向程序员的在线编程题库,提供各种编程语言的算法和数据结构题目,用于帮助编程者提升技能,尤其...
- **字符串旋转(Rotate String)**: 将字符串进行旋转操作。 - **反转单词(Reverse Words)**: 将字符串中的单词顺序反转。 - **验证回文字符串(Valid Palindrome)**: 判断一个字符串是否是回文。 - **最长回文子串...
189.rotate-array 283.move-zero Range Sum Query - Immutables 66.Plus One 快手-跳格子 Intersection of Two Arrays 17.10. Find Majority Element LCCI Game of Life Find All Numbers Disappeared in an Array ...
rotate: A Linear Time Majority Vote Algorithm 题解: Maximum Gap: Something about largest-rectangle-in-histogram: 最长递增子序列: 最长公共自序列: Something about: best time to buy and sell stack: ...
LeetCode中的这类问题涵盖了排序、查找、反转等操作,如“两数之和”(Two Sum)、“旋转数组”(Rotate Array)和“合并两个有序链表”(Merge Two Sorted Lists)。 2. **栈和队列**:这两种线性结构在处理逆序...
1. Rotate Array in Java 数组旋转是一个基本的数组操作,要求将数组中的元素旋转一定的位置。这种操作可以使用Java的System.arraycopy()方法或手动循环实现。 2. Evaluate Reverse Polish Notation 逆波兰表示法...
leetcode 浇花力扣解决方案 简单的 #0001 - Two Sum #0007 - Reverse Integer #0009 - Palindrome Number #0035 - Search Insert Position #0058 - Length of Last Word #0066 - Plus One #0083 - Remove Duplicates...
https://leetcode.com/problems/rotate-array/description/ * * algorithms * Easy (28.74%) * Total Accepted: 262.7K * Total Submissions: 913.5K * Testcase Example: '[1,2,3,4,5,6,7]\n3' * * Given an array,...
java lru leetcode :ice_cream: LeetCode Kindem 的个人 LeetCode 题解仓库,欢迎交流学习。 下面的目录中 ...Rotate Image 53 Maximum Subarray 55 Jump Game 56 Merge Intervals 64 Minimum Path Sum 73
RotateList LeetCode 75 Sort Colors LeetCode 125 Valid Palindrome LeetCode 167 Two Sum II - Input array is sorted LeetCode 344 Reverse String LeetCode 345 Reverse Vowels of a String 2 字符串 编号 题目 ...
Rotate Image (M) -> 2 73. Set Matrix Zeroes (M) 1. Two Sum (E) 167. Two Sum II - Input array is sorted (E) 653. Two Sum IV - Input is a BST (E) -> 2 26. Remove Duplicates from Sorted Array (E) 27. ...
462 | [Minimum Moves to Equal Array Elements II](https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/) | [C++](./C++/minimum-moves-to-equal-array-elements-ii.cpp) [Python](./Python/...
旋转图像](./Array/rotate-image.md) Heap 堆 [0023 合并K个排序链表](./Heap/merge-k-sorted-lists.md) String 字符串 [0006 Z字形变换](./String/zigzag-conversion.md) [0030 串联所有单词的子串](./String/...
- Rotate String(旋转字符串) - Reverse Words in a String(反转字符串中的单词) - Valid Palindrome(回文字符串验证) - Longest Palindromic Substring(最长回文子串) - Space Replacement(URL化) ...
3. **数组旋转**:如“旋转数组”(Rotate Array),需要对数组进行特定步数的逆时针或顺时针旋转。 4. **滑动窗口**:在数组中使用滑动窗口进行统计,如“最长连续序列”(Longest Consecutive Sequence)。 5. *...
leetcode中国Final450_数据结构 实际上,这个存储库包含成为优秀竞争程序员最重要的数据结构和算法。 他们的名字是: Questions ----------- *Reverse the array *Find the maximum and minimum element in an array...
leetcode中国大批 0. Count Prime 1. Reverse the array 2. Find the maximum and minimum element in an array 3. Find the "Kth" max and min element of an array 4. Given an array which consists of only 0, 1...
- **Rotate List**:将链表顺时针旋转指定次数。 - **Reorder List**:按照特定规则重新排列链表。 - **Partition List**:将链表按值分割成两个部分。 - **Add Two Numbers**:两个非负整数相加,结果存储在...