看一下代码逻辑语法是否正常呢,如果有错也欢迎指出来,无论说错与否都是对我的帮助
第一张图明显逻辑是有问题的,循环里if和else都分别return,那么循环根本走不下去,i永远只能是0呀
第二个,直接写if(bl)就好了,boolean值直接可以放到if里去判断,不要再跟true比较大小
看到一个大佬分享的文章内容:
安卓系统 7.0 以下版本,不管微信任意版本,都会信任系统提供的证书
安卓系统 7.0 以上版本,微信 7.0 以下版本,微信会信任系统提供的证书
安卓系统 7.0 以上版本,微信 7.0 以上版本,微信只信任它自己配置的证书列表
以上为大前提,我寻找了一个认为比较简单的方法:
准备工具:
① XposedInstaller_3.1.5.apk
② weixin673android1360.apk(要低于7版本)
③ JustTrustMe1.apk
④ BurpsuiteV2.0
⑤ 夜神最新版(使用的是安卓5)
https://pan.baidu.com/s/1qhivzmRiAmWJnf7Z-VMjhQ(123工具已分享)
4.最后挂上代理到burp
搬运大佬的知识学习 天之胶纸的
答案如下:
段落0的代码逻辑和语法是正确的,实现了随机化的快速排序算法,并进行了测试打印。
import java.util.Random;
public class QuickSort {
public static void main(String[] args) {
int[] A = {9,8,7,6,5,4,3,2,1 };
quickSort(A, 0, A.length - 1);
for (int i : A) {
System.out.print(i + " ");
}
}
public static int randomPartition(int[] A, int p, int r) {
int random = (int) (Math.random() * ((r - p) + 1)) + p;
int temp = A[random];
A[random] = A[r];
A[r] = temp;
return partition(A, p, r);
}
public static void quickSort(int[] A, int p, int r) {
if (p < r) {
int q = randomPartition(A, p, r);
quickSort(A, p, q - 1);
quickSort(A, q + 1, r);
}
}
public static int partition(int[] A, int p, int r) {
int i = p - 1;
int x = A[r];
for (int j = p; j < r; j++) {
if (A[j] <= x) {
i++;
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
int temp = A[i + 1];
A[i + 1] = A[r];
A[r] = temp;
int q = i + 1;
return q;
}
}
段落1的代码是C++的代码,不是Java语言的代码,所以无法通过Java编译器。以下是修改过的Java版本代码:
import java.util.*;
public class Solution {
public boolean isSymmetric(TreeNode root) {
Queue<TreeNode> q = new LinkedList<>();
TreeNode p = root;
if (p == null)
return true;
else
q.offer(p);
while (!q.isEmpty()) {
List<Integer> tmp = new ArrayList<>();
int size = q.size();
for (int i = 0; i < size; i++) {
p = q.poll();
if (p != null)
tmp.add(p.val);
else
tmp.add(-1);
if (p != null) {
if (p.left != null)
q.offer(p.left);
else
q.offer(null);
if (p.right != null)
q.offer(p.right);
else
q.offer(null);
}
}
}
List<List<Integer>> ans = new ArrayList<>();
for (int i = 0; i < ans.size(); i++) {
for (int j = 0; j < ans.get(i).size() / 2; j++) {
if (ans.get(i).get(j) != ans.get(i).get(ans.get(i).size() - j - 1)) {
return false;
}
}
}
return true;
}
}
修改的地方主要有: - 将C++的vector
改为Java的ArrayList
。 - 将C++的queue
改为Java的Queue
。 - 将C++的NULL
改为Java的null
。 - 修改了ans
的初始化部分,改为创建一个List<List<Integer>>
。 - 在判断回文时,使用了ans.get(i)
和ans.get(i).get()
来获取元素。