每日算法--2023.2.22
1.剑指offer07--重建二叉树
class Solution {
public TreeNode buildTree(int[] preorder, int[] inorder) {
return dfsRebuildTree(preorder, 0, preorder.length-1, inorder, 0, inorder.length-1);
}
public TreeNode dfsRebuildTree(int[] preorder, int left, int right, int[] inorder, int l, int r){
if(left>right){
return null;
}
int len = 0, target = preorder[left], i = l;
for(;i<r;i++){
if(inorder[i] == target){
break;
}
len++;
}
TreeNode root = new TreeNode(target);
root.left = dfsRebuildTree(preorder,left+1,left+len,inorder,i-len,i-1);
root.right = dfsRebuildTree(preorder,left+len+1,right,inorder,i+1,r);
return root;
}
}
2.剑指offer06--从尾到头打印链表
class Solution {
public int[] reversePrint(ListNode head) {
List<Integer> tempContainer = new LinkedList<>();
while(head!=null){
tempContainer.add(head.val);
head = head.next;
}
int n = tempContainer.size();
int[] res = new int[n];
for(int i = 0;i<n;i++){
res[i] = tempContainer.get(i);
}
int p = 0, q = n-1;
while(p<=q){
int a = res[p], b = res[q];
res[p++] = b;
res[q--] = a;
}
return res;
}
}
3.剑指offer05--替换空格
class Solution {
public String replaceSpace(String s) {
String res = new String();
int n = s.length();
for(int i = 0;i<n;i++){
char cur = s.charAt(i);
if(cur == ' '){
res += "%20";
}else{
res += cur;
}
}
return res;
}
}
4.剑指offer04--二维数组中的查找
class Solution {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
if(matrix.length == 0){
return false;
}
int m = matrix.length, n = matrix[0].length;
int i = 0, j = n-1;
while(i<m&&j>=0){
if(matrix[i][j]>target){
j = j-1;
}else if(matrix[i][j]<target){
i = i+1;
}else{
return true;
}
}
return false;
}
}
理想主义的花终将在现实中绽放

浙公网安备 33010602011771号