Interleaving Positive and Negative Numbers
来源:互联网 发布:ubuntu nvidia 分辨率 编辑:程序博客网 时间:2024/06/14 16:10
Given an array with positive and negative integers. Re-range it to interleaving with positive and negative integers.
Notice
You are not necessary to keep the original order of positive integers or negative integers.
Example
简化后的代码
python
Given [-1, -2, -3, 4, 5, 6]
, after re-range, it will be [-1, 5, -2, 4, -3, 6]
or any other reasonable answer.
一个写的并不简洁的代码
java
public class Solution { /* * @param A: An integer array. * @return: nothing */ public void rerange(int[] nums) { // write your code here if (nums == null || nums.length < 3) { return; } Arrays.sort(nums); int size = nums.length; boolean flag = true; int left = 0; int right = 0; if (size % 2 == 0) { left = 0; right = size - 1; while (left <= right) { if (flag && left <= right) { left++; right--; flag = !flag; } else if (!flag && left <= right){ reverse(nums, left, right); left++; right--; flag = !flag; } } } else if (size % 2 == 1 && nums[nums.length / 2] < 0) { left = 1; right = size - 1; while (left <= right) { if (flag && left <= right) { reverse(nums, left, right); left++; right--; flag = !flag; } else if (!flag && left <= right) { left++; right--; flag = !flag; } } } else if (size % 2 == 1 && nums[nums.length / 2] > 0) { left = 0; right = size - 2; while (left <= right) { if (flag && left <= right) { reverse(nums, left, right); left++; right--; flag = !flag; } else if (!flag && left <= right) { left++; right--; flag = !flag; } } } } private void reverse(int[] nums, int start, int end) { int temp = nums[start]; nums[start] = nums[end]; nums[end] = temp; }}
简化后的代码
java
public class Solution { /* * @param A: An integer array. * @return: nothing */ public void rerange(int[] nums) { // write your code here if (nums == null || nums.length < 3) { return; } int left = 0; int right = 0; boolean flag = true; Arrays.sort(nums); if (nums.length % 2 == 0) { left = 0; right = nums.length - 1; flag = true; } else if (nums.length % 2 == 1 && nums[nums.length / 2] < 0) { left = 1; right = nums.length - 1; flag = false; } else if (nums.length % 2 == 1 && nums[nums.length / 2] > 0) { left = 0; right = nums.length - 2; flag = false; } else { return; } while (left <= right) { if (left <= right && flag) { left++; right--; flag = !flag; } else if (left <= right && !flag) { reverse(nums, left, right); left++; right--; flag = !flag; } } } private void reverse(int[] nums, int left, int right) { int temp = nums[left]; nums[left] = nums[right]; nums[right] = temp; }}
python
class Solution: """ @param: A: An integer array. @return: nothing """ def rerange(self, nums): # write your code here if nums is None or len(nums) < 3: return left, right, flag = 0, 0, True nums.sort() if len(nums) % 2 == 0: left, right, flag = 0, len(nums) - 1, True elif len(nums) % 2 == 1 and nums[len(nums) / 2] < 0: left, right, flag = 1, len(nums) - 1, False elif len(nums) % 2 == 1 and nums[len(nums) / 2] > 0: left, right, flag = 0, len(nums) - 2, False else: return while left <= right: if left <= right and flag: left += 1 right -= 1 flag = not flag elif left <= right and not flag: nums[left], nums[right] = nums[right], nums[left] left += 1 right -= 1 flag = not flag
阅读全文
0 0
- Interleaving Positive and Negative Numbers
- Interleaving Positive and Negative Numbers
- Lintcode - Interleaving Positive and Negative Numbers
- [leetcode]Interleaving Positive and Negative Numbers
- lintcode:Interleaving Positive and Negative Numbers
- LintCode Interleaving Positive and Negative Numbers
- 代码面试题:Interleaving Negative and Positive Numbers 正负交替
- *[Lintcode]Interleaving Positive and Negative Numbers 交错正负数
- Lintcode144 Interleaving Positive And Negative Numbers solution 题解
- 144.Interleaving Positive and Negative Numbers-交错正负数(中等题)
- 1002 Positive and Negative
- 【HDU5183】Negative and Positive (NP)
- Counting positive and negative number and computing the average of numbers
- True Positive,True Negative,False Positive and False Negative
- True Positive,True Negative,False Positive and False Negative
- hdu 5183 Negative and Positive (NP)
- HDU 5183 Negative and Positive (NP)
- hdu5138 Negative and Positive (NP) 快速读入
- MyBatis映射文件(集合数据的添加与获取,条件查询,模糊查询)
- Local Discovery简介
- ubuntu14.04下解决eclipse菜单栏消失问题
- 第一个Spring MVC小项目
- 一些简单的sql语句
- Interleaving Positive and Negative Numbers
- 【JVM调优系列】----CPU过高的分析与解决方案
- 第九章自定义标签第一节概念
- java finally 执行顺序
- 快速入门Maven(二)(Eclipse构建Maven项目)
- Hadoop MapReduce数据处理过程以及更多示例
- java基础---(1)java中的final,static关键字
- 十五:while loop
- Java——文件路径操作