recover-rotated-sorted-array
2015-07-11 08:58
295 查看
容易 恢复旋转排序数组
26%通过
给定一个旋转排序数组,在原地恢复其排序。
您在真实的面试中是否遇到过这个题?
Yes
样例
[4, 5, 1, 2, 3]->
[1, 2, 3, 4, 5]
挑战
使用O(1)的额外空间和O(n)时间复杂度
说明
什么是旋转数组?
比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]
public class Solution { /** * @param nums: The rotated sorted array * @return: The recovered sorted array */ private void reverse(ArrayList<Integer> nums, int start, int end) { for (int i = start, j = end; i < j; i++, j--) { int temp = nums.get(i); nums.set(i, nums.get(j)); nums.set(j, temp); } } public void recoverRotatedSortedArray(ArrayList<Integer> nums) { for (int index = 0; index < nums.size() - 1; index++) { if (nums.get(index) > nums.get(index + 1)) { reverse(nums, 0, index); reverse(nums, index + 1, nums.size() - 1); reverse(nums, 0, nums.size() - 1); return; } } } }
相关文章推荐
- PC端体验效果最佳epub阅读器——iRead爱读书
- Lua的表达式
- activemq的几种基本通信方式总结
- Random Maze (hdu 4067 最小费用流 好题 贪心思想建图)
- NSDictionary、NSMutableDictionary的基本用法
- JAVA写文件:FileOutputStream
- 认识TexturePacker的界面
- 认识TexturePacker的界面 分类: cocos2d其他 2015-07-11 08:56 9人阅读 评论(0) 收藏
- JSP与Servlet相互跳转小结
- JAVA的InputStream和OutputStream的理解
- 第一章 flex单词计数程序
- Android 继承DialogFragment弹出dialog对话框二
- Tcl学习之--语法|变量
- c++单链表的相关操作
- js保留小数
- Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW _TASK flag.
- 【JSON异常系列】new JSONObject对象时卡死原因
- socket中的option
- +1,-1位运算
- Android入门(16)——数据存储之SharedPreferences