JDK版本 1.8
二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
public class Solution { public boolean Find(int target, int [][] array) { for(int[] i:array){ for(int j:i){ if(j == target){ return true; } } } return false; } }
public class Solution { public boolean Find(int target, int [][] array) { int row = array.length - 1; int column = 0; while(row >= 0 && column < array[row].length){ if (array[row][column] > target){ row--; } else if (array[row][column] < target){ column++; } else { return true; } } return false; } }
|
替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
1 2 3 4 5 6 7
|
public class Solution { public String replaceSpace(StringBuffer str) { return str == null? null:str.toString().replaceAll(" ","%20"); } }
|
从尾到头打印链表
输入一个链表,从尾到头打印链表每个节点的值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
import java.util.ArrayList; import java.util.Stack; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> returnList = new ArrayList<>(); Stack<Integer> stack = new Stack();
while(listNode != null){ stack.push(listNode.val); listNode = listNode.next; } while(!stack.isEmpty()){ returnList.add(stack.pop()); } return returnList; } }
import java.util.ArrayList; public class Solution { ArrayList<Integer> arrayList = new ArrayList<Integer>(); public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNode != null){ this.printListFromTailToHead(listNode.next); arrayList.add(listNode.val); } return arrayList; } }
|