首页 > 代码库 > 一些算法题
一些算法题
下面都是我在网上搜集的算法题,我自己想了解法
1.一个严格递增的序列,从中间某个未知的地方切成两段,将前一段放到后面,求最大值?注意划开的位置你不知道!
我的解法
2.二维数组(N*N),沿对角线方向,从右上角打印到左下角如N=4:
{ 1 2 3 4 } { 5 6 7 8 } { 9 10 11 12 } {13 14 15 16 }
打印出来后
4 3 8 2 7 12 1 6 11 16 5 10 15 9 14 13
我的解答
package com.spring.test; /** * Created by brady on 15-1-14. */ public class s { public static int[][] f(int n){ int[][] a = new int[2*n-1][n]; for(int i=n-1;i>=0;i--){ int aaa=i; for(int j=n-1;j>=0;j--){ a[aaa][i]=i*4+j+1; aaa++; } } return a; } public static void main(String[] args){ int n=4; int[][] a = f(n); for(int i=0;i<2*n-1;i++ ){ for(int j=0;j<4;j++) if(a[i][j]>0){ System.out.print(a[i][j] + " "); } System.out.println(); } } }
3.给你两个字符串str1,str2,找出str2在str1中的位置。
我的解答,没有用indexof
package com.spring.test; /** * Created by brady on 15-1-29. */ public class Str { public static int f(String str,String s){ for(int i=0;i<str.length()-s.length();i++){ int k=0; if(str.charAt(i)==s.charAt(0)){ k=1; for (int j=1;j<s.length();j++){ if(str.charAt(i+j)==s.charAt(j)) k=1; else { k=0; break; } } } if(k==1) return i; } return -1; } public static void main(String[] args){ int a = f("sdgdddfgddddgggh","dddd"); System.out.println(a); } }
一些算法题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。