当前位置: 首页 > news >正文

运动网站模板佛山三水区有没有网站建设公司

运动网站模板,佛山三水区有没有网站建设公司,从零开始学Wordpress建站,做做网站下载免费算法刷题笔记 3.25-3.29 1. 相同的树2. 二叉树的最近公共祖先3. 二叉搜索树中第K小的元素通过双端队列duque 中序遍历 4. 二叉树的锯齿形层序遍历new LinkedListInteger(levelList)双端队列复制 数组需要左右顺序#xff0c;考虑双端队列 5. 岛屿数量6. 字典序排数Integer(levelList)双端队列复制 数组需要左右顺序考虑双端队列 5. 岛屿数量6. 字典序排数有难度循环n次一次只入一个数 7. 克隆图如果该节点已经被访问过了则直接从哈希表中取出对应的克隆节点返回 8. 省份数量并查集 9. 课程表10. 所有可能的路径11. 判断二分图12. 字符串解码两个栈一个存数字一个存字母res一直更新 13. 快速排序14. 利用快速排序找到第k个数15. 归并排序16. 逆序对的数量 三、二分17. 在排序数组中查找元素的第一个和最后一个位置18. 数的三次方根 四、高精度19. 字符串相加20. 高精度减法21. 高精度乘法22. 高精度除法 五、前缀和S与差分a23. 区域和检索 - 数组不可变24. 子矩阵的和25. 差分26. 差分矩阵 1. 相同的树 原题链接 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/ class Solution {public boolean isSameTree(TreeNode p, TreeNode q) {if (p null q null) {return true;}if ((p ! null q null) || (p null q ! null)) {return false;}if (p.val ! q.val) {return false;}return isSameTree(p.left,q.left) isSameTree(p.right,q.right);} }2. 二叉树的最近公共祖先 原题链接 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/ class Solution {public TreeNode ans;public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {ans null;dfs(root,p,q);return ans;}public boolean dfs(TreeNode root, TreeNode p, TreeNode q) {if (root null) {return false;}boolean l dfs(root.left,p,q);boolean r dfs(root.right,p,q);if (l true r true ans null) {ans root;return true;}if ((l true || r true) (root p || root q) ans null) {ans root;return true;}if (root p || root q) {return true;}return l || r;}}3. 二叉搜索树中第K小的元素 通过双端队列duque 中序遍历 二叉搜索树中第K小的元素 class Solution {public int kthSmallest(TreeNode root, int k) {DequeTreeNode stack new ArrayDequeTreeNode();while (root ! null || !stack.isEmpty()) {while (root ! null) {stack.push(root);root root.left;}root stack.pop();--k;if (k 0) {break;}root root.right;}return root.val;} } 4. 二叉树的锯齿形层序遍历 原题链接 new LinkedList(levelList)双端队列复制 数组 需要左右顺序考虑双端队列 class Solution {public ListListInteger zigzagLevelOrder(TreeNode root) {ListListInteger ans new LinkedListListInteger();if (root null) {return ans;}QueueTreeNode nodeQueue new ArrayDequeTreeNode();nodeQueue.offer(root);boolean isOrderLeft true;while (!nodeQueue.isEmpty()) {DequeInteger levelList new LinkedListInteger();int size nodeQueue.size();for (int i 0; i size; i) {TreeNode curNode nodeQueue.poll();if (isOrderLeft) {levelList.offerLast(curNode.val);} else {levelList.offerFirst(curNode.val);}if (curNode.left ! null) {nodeQueue.offer(curNode.left);}if (curNode.right ! null) {nodeQueue.offer(curNode.right);}}ans.add(new LinkedListInteger(levelList));isOrderLeft !isOrderLeft;}return ans;} } 5. 岛屿数量 class Solution {public int[][] posztion {{0,-1},{0,1},{1,0},{-1,0}};public boolean[][] isUsed new boolean[301][301];public int numIslands(char[][] grid) {int ans 0;for (int i 0; i grid.length; i) {for (int j 0; j grid[0].length; j) {if (isUsed[i][j] false grid[i][j] 1) {bfs(grid,i,j,ans);ans;}}}return ans;}public void bfs(char[][] grid,int x,int y, int ans) {for (int i 0; i 4; i) {int a x posztion[i][0];int b y posztion[i][1];if (a 0 a grid.length b 0 b grid[0].length isUsed[a][b] false grid[a][b] 1) {isUsed[a][b] true;bfs(grid,a,b,ans);}}}}6. 字典序排数有难度 原题链接 循环n次一次只入一个数 class Solution {public ListInteger lexicalOrder(int n) {ListInteger ret new ArrayListInteger();int number 1;for (int i 0; i n; i) {ret.add(number);if (number * 10 n) {number * 10;} else {while (number % 10 9 || number 1 n) {number / 10;}number;}}return ret;} }7. 克隆图 如果该节点已经被访问过了则直接从哈希表中取出对应的克隆节点返回 原题链接 class Solution {private HashMap Node, Node visited new HashMap ();public Node cloneGraph(Node node) {if (node null) {return node;}// 如果该节点已经被访问过了则直接从哈希表中取出对应的克隆节点返回if (visited.containsKey(node)) {return visited.get(node);}// 克隆节点注意到为了深拷贝我们不会克隆它的邻居的列表Node cloneNode new Node(node.val, new ArrayList());// 哈希表存储visited.put(node, cloneNode);// 遍历该节点的邻居并更新克隆节点的邻居列表for (Node neighbor: node.neighbors) {cloneNode.neighbors.add(cloneGraph(neighbor));}return cloneNode;} } 8. 省份数量 原题链接 并查集 class Solution {public int findCircleNum(int[][] isConnected) {int cities isConnected.length;int[] parent new int[cities];for (int i 0; i cities; i) {parent[i] i;}for (int i 0; i cities; i) {for (int j i 1; j cities; j) {if (isConnected[i][j] 1) {union(parent, i, j);}}}int provinces 0;for (int i 0; i cities; i) {if (parent[i] i) {provinces;}}return provinces;}public void union(int[] parent, int index1, int index2) {parent[find(parent, index1)] find(parent, index2);}public int find(int[] parent, int index) {if (parent[index] ! index) {parent[index] find(parent, parent[index]);}return parent[index];} } 9. 课程表 原题链接 class Solution {private static final int N 5001;private static int[] e;private static int[] ne;private static int[] h;private static int[] cnt;private static int idx;private static void add(int a,int b) {e[idx] b;ne[idx] h[a];cnt[b];h[a] idx;}public boolean canFinish(int numCourses, int[][] prerequisites) {e new int[N];ne new int[N];h new int[N];cnt new int[N];idx 0;Arrays.fill(h,-1);for (int[] temp : prerequisites) {add(temp[1],temp[0]);}QueueInteger queue new LinkedList();for (int i 0; i numCourses; i) {if (cnt[i] 0) {queue.add(i);}}int sum 0;while (!queue.isEmpty()) {int r queue.remove();sum;for (int i h[r]; i ! -1; i ne[i]) {int j e[i];cnt[j]--;if (cnt[j] 0) {queue.add(j);}}}if (sum numCourses) {return true;} else {return false;}} } 10. 所有可能的路径 原题链接 class Solution {ListListInteger ans new ArrayListListInteger();DequeInteger stack new ArrayDequeInteger();public ListListInteger allPathsSourceTarget(int[][] graph) {stack.offerLast(0);dfs(graph, 0, graph.length - 1);return ans;}public void dfs(int[][] graph, int x, int n) {if (x n) {ans.add(new ArrayListInteger(stack));return;}for (int y : graph[x]) {stack.offerLast(y);dfs(graph, y, n);stack.pollLast();}} }11. 判断二分图 原题链接 class Solution {private static final int UNCOLORED 0;private static final int RED 1;private static final int GREEN 2;private int[] color;private boolean valid;public boolean isBipartite(int[][] graph) {int n graph.length;valid true;color new int[n];Arrays.fill(color, UNCOLORED);for (int i 0; i n valid; i) {if (color[i] UNCOLORED) {dfs(i, RED, graph);}}return valid;}public void dfs(int node, int c, int[][] graph) {color[node] c;int cNei c RED ? GREEN : RED;for (int neighbor : graph[node]) {if (color[neighbor] UNCOLORED) {dfs(neighbor, cNei, graph);if (!valid) {return;}} else if (color[neighbor] ! cNei) {valid false;return;}}} }12. 字符串解码 两个栈一个存数字一个存字母 res一直更新 class Solution {public String decodeString(String s) {StringBuilder res new StringBuilder();int multi 0;LinkedListInteger stack_multi new LinkedList();LinkedListString stack_res new LinkedList();for(Character c : s.toCharArray()) {if(c [) {stack_multi.addLast(multi);stack_res.addLast(res.toString());multi 0;res new StringBuilder();}else if(c ]) {StringBuilder tmp new StringBuilder();int cur_multi stack_multi.removeLast();for(int i 0; i cur_multi; i) tmp.append(res);res new StringBuilder(stack_res.removeLast() tmp);}else if(c 0 c 9) multi multi * 10 Integer.parseInt(c );else res.append(c);}return res.toString();} }13. 快速排序 原题链接 class Solution {public int[] sortArray(int[] nums) {int n nums.length;quickSort(nums,0,n-1);return nums;}public void quickSort(int[] nums, int l, int r) {if (l r) {return;}int i l-1, j r1;int x nums[ij1];while (i j) {do i; while(nums[i] x);do j--; while(nums[j] x);if (i j) {int temp nums[i];nums[i] nums[j];nums[j] temp;}}quickSort(nums,l,j);quickSort(nums,j1,r);}}14. 利用快速排序找到第k个数 原题链接 class Solution {public int findKthLargest(int[] nums, int k) {return quickSortFindKthLargest(nums,k,0,nums.length-1);}public int quickSortFindKthLargest(int[] nums, int k, int l,int r) {if (l r) {return nums[l];}int i l-1, j r1;int x nums[ij1];while (i j) {do i; while(nums[i] x);do j--; while(nums[j] x);if (i j) {int temp nums[i];nums[i] nums[j];nums[j] temp;}}if (j1nums.length-k) {return quickSortFindKthLargest(nums,k,j1,r);} else {return quickSortFindKthLargest(nums,k,l,j);}}}15. 归并排序 原题链接 class Solution {int[] tempNums;public int[] sortArray(int[] nums) {tempNums new int[nums.length];int n nums.length;mergeSort(nums,0,n-1);return nums;}public void mergeSort(int[] nums, int l, int r) {if (l r) {return;}int mid lr1;mergeSort(nums,l,mid);mergeSort(nums,mid1,r);int i l,j mid1;int idx 0;while (i mid j r) {if (nums[i] nums[j]) {tempNums[idx] nums[i];} else {tempNums[idx] nums[j];}}while (i mid) {tempNums[idx] nums[i];}while (j r) {tempNums[idx] nums[j];}for (int q l,k 0; q r; q) {nums[q] tempNums[k];}}}16. 逆序对的数量 原题链接 class Solution {public static int ans;public int reversePairs(int[] record) {ans 0;int n record.length;numberOfReverseOrderPairs(0,n-1,record);return ans;}public static void numberOfReverseOrderPairs(int l,int r,int[] nums){if (l r) {return;}int mid (lr)1;int i l,j mid1;numberOfReverseOrderPairs(l,mid,nums);numberOfReverseOrderPairs(mid1,r,nums);int[] temp new int[r-l1];int k 0;while (i mid j r) {if (nums[i] nums[j]) {temp[k] nums[i];} else {temp[k] nums[j];ans mid - i 1;}}while (i mid) {temp[k] nums[i];}while (j r) {temp[k] nums[j];}for (int q l,p 0; q r; q) {nums[q] temp[p];}}}三、二分 17. 在排序数组中查找元素的第一个和最后一个位置 力扣链接 acwing链接 class Solution {public int[] searchRange(int[] nums, int target) {if (nums null || nums.length 0) {return new int[]{-1,-1};}int l 0, r nums.length-1;while (l r) {int mid lr1;if (nums[mid] target) {l mid 1;} else {r mid;}}int ans1 r;l 0; r nums.length-1;while (l r) {int mid lr11;if (nums[mid] target) {l mid;} else {r mid-1;}}int ans2 r;if (nums[ans1] target nums[ans2] target) {return new int[]{ans1,ans2};} else {return new int[]{-1,-1};}} }18. 数的三次方根 力扣连接 acwing链接 class Solution {public int mySqrt(int x) {int l 0, r x, ans -1;while (l r) {int mid l (r - l) / 2;if ((long) mid * mid x) {ans mid;l mid 1;} else {r mid - 1;}}return ans;} } 四、高精度 19. 字符串相加 力扣链接 acwing链接 class Solution {public String addStrings(String num1, String num2) {int i num1.length() - 1, j num2.length() - 1, add 0;StringBuffer ans new StringBuffer();while (i 0 || j 0 || add ! 0) {int x i 0 ? num1.charAt(i) - 0 : 0;int y j 0 ? num2.charAt(j) - 0 : 0;int result x y add;ans.append(result % 10);add result / 10;i--;j--;}// 计算完以后的答案需要翻转过来ans.reverse();return ans.toString();} }20. 高精度减法 原题链接 import java.util.Scanner; import java.util.List; import java.util.ArrayList;public class Main{public static void main(String[] args){Scanner scanner new Scanner(System.in);String s1 scanner.next();String s2 scanner.next();ListInteger A new ArrayList();ListInteger B new ArrayList();for(int i s1.length() - 1;i 0;i --) A.add(s1.charAt(i) - 0);for(int i s2.length() - 1;i 0; i --) B.add(s2.charAt(i) - 0);if(!cmp(A,B)){System.out.print(-);}ListInteger C sub(A,B);for(int i C.size() - 1;i 0; i --){System.out.print(C.get(i));}}public static ListInteger sub(ListInteger A,ListInteger B){if(!cmp(A,B)){return sub(B,A);}ListInteger C new ArrayList();int t 0;for(int i 0;i A.size();i ){//这里应该是A.get(i) - B.get(i) - t 因为可能B为零所以需要判断一下是不是存在t A.get(i) - t;if(i B.size()) t - B.get(i);C.add((t 10) % 10);if(t 0) t 1;else t 0;}//删除指定下标下面的值while(C.size() 1 C.get(C.size() - 1) 0) C.remove(C.size() - 1);return C;}public static boolean cmp(ListInteger A,ListInteger B){if(A.size() ! B.size()) return A.size() B.size();/* if(A.size() B.size()){return true;}else{return false;}*/for(int i A.size() - 1;i 0;i --){if(A.get(i) ! B.get(i)) {return A.get(i) B.get(i);}}return true;} }21. 高精度乘法 二刷 在草稿纸上演算一遍 运算过程便知道 代码逻辑 力扣链接 acwing链接 class Solution {public String multiply(String num1, String num2) {if (num1.equals(0) || num2.equals(0)) {return 0;}String ans 0;int m num1.length(), n num2.length();for (int i n - 1; i 0; i--) {StringBuffer curr new StringBuffer();int add 0;for (int j n - 1; j i; j--) {curr.append(0);}int y num2.charAt(i) - 0;for (int j m - 1; j 0; j--) {int x num1.charAt(j) - 0;int product x * y add;curr.append(product % 10);add product / 10;}if (add ! 0) {curr.append(add % 10);}ans addStrings(ans, curr.reverse().toString());}return ans;}public String addStrings(String num1, String num2) {int i num1.length() - 1, j num2.length() - 1, add 0;StringBuffer ans new StringBuffer();while (i 0 || j 0 || add ! 0) {int x i 0 ? num1.charAt(i) - 0 : 0;int y j 0 ? num2.charAt(j) - 0 : 0;int result x y add;ans.append(result % 10);add result / 10;i--;j--;}ans.reverse();return ans.toString();} } 22. 高精度除法 原题链接 #include iostream #include vector #include algorithmusing namespace std;vectorint div(vectorint A, int b, int r) {vectorint C;r 0;for (int i A.size() - 1; i 0; i -- ){r r * 10 A[i];C.push_back(r / b);r % b;}reverse(C.begin(), C.end());while (C.size() 1 C.back() 0) C.pop_back();return C; }int main() {string a;vectorint A;int B;cin a B;for (int i a.size() - 1; i 0; i -- ) A.push_back(a[i] - 0);int r;auto C div(A, B, r);for (int i C.size() - 1; i 0; i -- ) cout C[i];cout endl r endl;return 0; }五、前缀和S与差分a 23. 区域和检索 - 数组不可变 力扣链接 acwing链接 class NumArray {int[] sums;public NumArray(int[] nums) {int n nums.length;sums new int[n 1];for (int i 0; i n; i) {sums[i 1] sums[i] nums[i];}}public int sumRange(int i, int j) {return sums[j 1] - sums[i];} }24. 子矩阵的和 acwing链接 力扣链接 class NumMatrix {int[][] sums;public NumMatrix(int[][] matrix) {int m matrix.length;if (m 0) {int n matrix[0].length;sums new int[m 1][n 1];for (int i 0; i m; i) {for (int j 0; j n; j) {sums[i 1][j 1] sums[i][j 1] sums[i 1][j] - sums[i][j] matrix[i][j];}}}}public int sumRegion(int row1, int col1, int row2, int col2) {return sums[row2 1][col2 1] - sums[row1][col2 1] - sums[row2 1][col1] sums[row1][col1];} }25. 差分 力扣链接 acwing链接 class Solution {public int[] corpFlightBookings(int[][] bookings, int n) {int[] nums new int[n];for (int[] booking : bookings) {nums[booking[0] - 1] booking[2];if (booking[1] n) {nums[booking[1]] - booking[2];}}for (int i 1; i n; i) {nums[i] nums[i - 1];}return nums;} }26. 差分矩阵 原题链接 import java.util.*;public class Main {public static void main (String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();int m scanner.nextInt();int q scanner.nextInt();int[][] splits new int[n2][m2];int[][] sum new int[n2][m2];for (int i 1; i n; i) {for(int j 1; j m; j) {sum[i][j] scanner.nextInt();splits[i][j] sum[i][j] - sum[i-1][j] - sum[i][j-1] sum[i-1][j-1];}}for (int i 0; i q; i) {int x1 scanner.nextInt();int y1 scanner.nextInt();int x2 scanner.nextInt();int y2 scanner.nextInt();int c scanner.nextInt();splits[x1][y1] c;splits[x1][y21] - c;splits[x21][y1] - c;splits[x21][y21] c;}for (int i 1; i n; i) {for (int j 1; j m; j) {sum[i][j] splits[i][j] sum[i-1][j] sum[i][j-1] - sum[i-1][j-1];System.out.print(sum[i][j] );}System.out.println();}} }
http://www.zqtcl.cn/news/949937/

相关文章:

  • 申请微官网的网站国外域名注册商网站
  • 集团公司网站建设建设中学校园网站的来源
  • 产品展示网站含后台网站模板下载网站开发什么语言好
  • 做知乎网站的图片如何设计好网站
  • 广州企业网站推广织梦学校网站模板
  • 国内响应式网站案例深圳住房和城乡建设局网站
  • 网页制作网站首页中国建筑论坛网
  • 众创空间网站建设少年宫网站建设模块
  • 企业营销型网站的内容科技公司取名大全
  • 哈尔滨云建站模板投资公司的钱从哪里来
  • 海南做网站公司哪家好中国人做外贸生意的网站
  • 没有网站怎么做cpa成都百度推广公司地址
  • 龙湖地产 网站建设高端上海网站设计公司
  • 触屏手机网站模板装修设计软件排名
  • 怎么做盗文网站郑州建设教育培训中心
  • 网站安全解决方案嵌入式软件工程师培训
  • 怎么做一种网站为别人宣传网站界面切片做程序
  • 麻涌网站建设河北网站建设联系方式
  • 建设银行官方网站打不开啊寮步仿做网站
  • 一个人可做几次网站备案峰峰网站建设
  • 怎么盗号网站怎么做北京高端网站设计外包公司
  • 著名的淘宝客网站wordpress博客内容预览
  • 成都网站seo公司甘肃网站建设推广
  • 做网站加班网站项目意义
  • 在虚拟机中如何做二级域名网站个人网站做哪种能赚钱
  • 贵州建设水利厅考试网站wordpress主查询翻页
  • 网站优化网络推广seo天津建设工程信息网几点更新
  • 兰州网站seo技术厂家比较实用的h5网页建设网站
  • 怎样让自己做的网站被百度收录动漫制作软件
  • 西安网站制作哪家公司好怎么向企业推销网站建设