旋转数组
转自 http://blog.youkuaiyun.com/booirror/article/details/43950477
- void rotate(int nums[], int n, int k) {
- int temp;
- for (int step = 0; step < k; step++) {
- temp = nums[n-1];
- for (int i = n-1; i > 0; --i)
- {
- nums[i] = nums[i-1];
- }
- nums[0] = temp;
- }
- }
转自 http://blog.youkuaiyun.com/a1b2c3d4123456/article/details/51536086
题目要求部分反转数组。比如说1,2,3,4,5 翻转后是3,4,5,1,2
即原来有序,反转后2部分各自有序。
<code class="hljs java has-numbering"><span class="hljs-keyword">package</span> arrayTest; <span class="hljs-javadoc">/** * 数组部分反转,使用的是三次反转 *<span class="hljs-javadoctag"> @author</span> duola * */</span> <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">reverse</span> {</span> <span class="hljs-comment">//从指定位置开始反转</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">reverse</span>(<span class="hljs-keyword">int</span> [] arr,<span class="hljs-keyword">int</span> from,<span class="hljs-keyword">int</span> to) { <span class="hljs-keyword">while</span>(from<to){ <span class="hljs-keyword">int</span> tmp=arr[from]; arr[from++]=arr[to]; arr[to--]=tmp; } } <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span>(String [] args) { <span class="hljs-keyword">int</span>[] test={<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>,<span class="hljs-number">4</span>,<span class="hljs-number">5</span>}; reverse(test, <span class="hljs-number">0</span>, <span class="hljs-number">1</span>); reverse(test, <span class="hljs-number">2</span>, test.length-<span class="hljs-number">1</span>); reverse(test, <span class="hljs-number">0</span>, test.length-<span class="hljs-number">1</span>); <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> i=<span class="hljs-number">0</span>;i<test.length;i++){ System.out.print(test[i]); } } } </code>