1、二维数组中的查找
//方法一:
for(int i=0; i<array.length;i++){
for(int j = 0;j<array[0].length;j++){
if(array[i][j] == target){
return true;
}
}
}
return false;//方法二:
int x = 0;
int y = array[0].length - 1;
while(x < array.length && x >= 0 && y >= 0 && y < array[0].length ){
if(target == array[x][y]){
return true;
}else if(target > array[x][y]){
x++;
}else{
y--;
}
}
return false;2、替换空格
方法一:
return str.toString().replace(" ","%20");方法二:
StringBuffer s = new StringBuffer();
for(int i =0;i<str.length();i++){
if(str.charAt(i) == ' '){
s.append("%20");
}else{
s.append(str.charAt(i));
}
}
return s.toString();3、从尾到头打印链表
//方法一:
ArrayList<Integer> list = new ArrayList<>();
Stack<Integer> statck = new Stack<>();
while(listNode != null ){
statck.add(listNode.val);
listNode = listNode.next;
}
while(!statck.isEmpty()){
list.add(statck.pop());
}
return list;//方法二:
ArrayList<Integer> list = new ArrayList<>();
ListNode temp = listNode;
while(temp != null){
list.add(0,temp.val);
temp = temp.next;
}
return list;//方法三:
ArrayList<Integer> list = new ArrayList<>();
ListNode temp = listNode;
while(temp != null){
list.add(temp.val);
temp = temp.next;
}
Collections.reverse(list);
return list;//方法四:递归
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<>();
if(listNode == null){
return list;
}
return solve(list,listNode);
}
private static ArrayList<Integer> solve(ArrayList<Integer> list,ListNode listNode){
if(listNode.next != null){
list = solve(list,listNode.next);
}
list.add(listNode.val);
return list;
}//方法五:递归
public class Solution {
ArrayList<Integer> list = new ArrayList<>();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if(listNode != null){
printListFromTailToHead(listNode.next);
list.add(listNode.val);
}
return list;
}4、重建二叉树
import java.util.*;
public class Solution {
public TreeNode reConstructBinaryTree(int [] pre,int [] in) {
Map<Integer,Integer> map = new HashMap<>();
for(int i=0;i<pre.length;i++){
map.put(in[i],i);
}
return buildTree(pre,0,pre.length-1,in,0,in.length-1,map);
}
private TreeNode buildTree(int[] preorder,int preLIndex,int preRIndex,int[] inorder,int inLIndex,int inRIndex,Map<Integer,Integer> map){
if(preLIndex > preRIndex || inLIndex >inRIndex){
return null;
}
int pIndex = map.get(preorder[preLIndex]);
TreeNode root = new TreeNode(preorder[preLIndex]);
root.left = buildTree(preorder,preLIndex+1,preLIndex+pIndex-inLIndex,inorder,inLIndex,pIndex-1,map);
root.right = buildTree(preorder,pIndex-inLIndex+preLIndex+1,preRIndex,inorder,pIndex+1,inRIndex,map);
return root;
}
}5、
6、

京公网安备 11010502036488号