找出拼接数字中的最小数
{3,31,323}
可以拼成:
331323 313323 323331 323323
public class 哔哩哔哩58 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer arr[]= {3,31,323};
//找出拼接数字中的最小数
int ans=fun(arr);
System.out.println(ans);
}
private static int fun(Integer[] arr) {
// TODO Auto-generated method stub
//,(a,b)->(a+""+b)-(b+""+a)
Arrays.sort(arr,new Comparator<Integer>() {
public int compare(Integer o1,Integer o2)
{
String s1=o1+""+o2;
String s2=o2+""+o2;
return s1.compareTo(s2);//小于0为升序 大于0位降序
}
});
//到这步已经成为升序序列
StringBuilder ans=new StringBuilder();
for(int i=0;i<arr.length;i++)
{
ans.append(arr[i]);
}
int ass=Integer.parseInt(ans.toString());
return ass;
}
}
数组包含
for循环套一个二分搜索
O(nlogn)
char a[]={'a','b','x','c'};
char b[]= {'a','b','c'};
int flag=0;
Arrays.sort(a);
for(int i=0;i<b.length;i++)
{
int index=Arrays.binarySearch(a, b[i]);
if(index<0)
{flag=0;
break;
}
else flag=1;
}
if(flag==1) System.out.println("包含");
else System.out.println("不包含");
打印螺旋矩阵
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[][]= {
{1,2,3,4,5},
{2,3,4,56,2},
{2,3,4,6,7}
};
prints(arr);
}
private static void prints(int[][] arr) {
// TODO Auto-generated method stub
int zuoshangh=0,zuoshangl=0,youxiah=arr.length-1,youxial=arr[0].length-1;
int cnt=0;
while(zuoshangh<=youxiah&&zuoshangl<=youxial)
{
int h1=zuoshangh,l1=zuoshangl;
while(l1<=youxial)
{
System.out.print(arr[h1][l1++]+" ");
cnt++;
}
h1++;l1=youxial;
if(cnt==arr.length*arr[0].length)break;
while(h1<=youxiah)
{
System.out.print(arr[h1++][l1]+" ");cnt++;
}
h1=youxiah;l1--;
if(cnt==arr.length*arr[0].length)break;
while(l1>=zuoshangl)
{
System.out.print(arr[h1][l1--]+" ");cnt++;
}
h1--;l1=zuoshangl;
if(cnt==arr.length*arr[0].length)break;
while(h1>zuoshangh)
{
System.out.print(arr[h1--][l1]+" ");cnt++;
}
if(cnt==arr.length*arr[0].length)break;
zuoshangh++;zuoshangl++;
youxiah--;youxial--;
}
}