几个算法小题目
2017-08-17 21:57
190 查看
1、输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
这个题目的核心在于此、重写新的compare方法
2、
将数组转换成指针
public static Node swapArrayUseLinkedList(Node head){
//使用链表实现
Node odd = head;//奇数
Node even = head.next;
Node evenHead = even; //偶数头指针
while (even.next!=null){
odd.next = even.next; //移动当前指针
odd = odd.next;
even.next = odd.next;
even = even.next;
}
//拼接奇、偶链表
odd.next = evenHead;
return head;
}
public static String PrintMinNumber(int [] numbers){ String result = ""; if (numbers.length == 0 || numbers == null){ return null; } int length = numbers.length; String[] str = new String[length]; for (int i = 0; i < length; i++){ str[i] = String.valueOf(numbers[i]); } Arrays.sort(str, new Comparator<String>(){ @Override public int compare(String o1, String o2) { String s1 = o1 + o2; String s2 = o2 + o1; return s1.compareTo(s2); } }); for (String s:str){ result+=s; } return result; }
这个题目的核心在于此、重写新的compare方法
2、
将数组中奇数都放前面,偶数都放在后面
将数组转换成指针public static Node swapArrayUseLinkedList(Node head){
//使用链表实现
Node odd = head;//奇数
Node even = head.next;
Node evenHead = even; //偶数头指针
while (even.next!=null){
odd.next = even.next; //移动当前指针
odd = odd.next;
even.next = odd.next;
even = even.next;
}
//拼接奇、偶链表
odd.next = evenHead;
return head;
}
相关文章推荐
- 几个算法题目
- 几个简单的C算法题目
- 几个经典基础算法题目
- 几个有趣的算法题目
- [string]字符串中几个比较难的算法和容易搞混的题目
- 几个算法题目
- 几个算法题目
- 几个有意思的算法题目
- 几个有意思的算法题目
- 算法设计几个经典思维题目
- LeetCode算法题目:Populating Next Right Pointers in Each Node II
- LeetCode算法题目:Combinations
- 面试10大算法汇总+常见题目解答
- 求某个数组里连续子数组最大和的几个算法
- 关于字符串的几个算法
- 股票开盘的最大成交额-----一道不错的贪心算法题目
- 数据结构之单链表的几个简单算法题
- 几个经典算法研究
- Num 16: HDOJ: 题目1061 : Rightmost Digit [ 求个位数 ] [ 快速幂算法 ]
- 多版本pku题目分类及算法分类