leetcode-剑指 Offer 52. 两个链表的第一个公共节点
剑指 Offer 52. 两个链表的第一个公共节点
12345678910111213141516171819202122232425/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if(headA == null || headB == null){ return null; } ListNode pA = headA; L ...
leetcode-494. 目标和
494. 目标和
123456789101112131415161718192021222324252627class Solution { public int findTargetSumWays(int[] nums, int target) { int n = nums.length; int sum = 0; for(int num : nums){ sum += num; } // neg必须是能被2除的 if((sum - target)<0 || (sum - target)%2 != 0){ return 0; } int neg = (sum - target)/2; int[][] dp = new int[n+1][neg+1]; dp[0][0] = 1; for(int i = 1; i &l ...
leetcode-面试题 17.10. 主要元素
面试题 17.10. 主要元素
123456789101112131415161718192021222324class Solution { public int majorityElement(int[] nums) { int count = 0; int ans = -1; for(int i = 0; i < nums.length; i++){ if(count == 0){ ans = nums[i]; } if(nums[i] != ans){ count--; }else{ count++; } } int cnt = 0; for(int i = 0; i < nums ...
mathType转latex-使用java调用go
mathType转latex-java调用go转mathType
背景
教育行业常使用mathType作为公式编辑器,当解析word资源转为线上资源时,常用java word poi提取word数据,但其中mathType只能被识别为图片,不能正常解析为可编辑公式,此时往往部署另一套C#程序解析word,使用windows部署C#解析word存在解析缓慢、程序易卡死,大多数java开发人员不熟悉C#无法快速迭代的通病,此时亟需使用java解析mathType,从而完全替代C#版本的word解析。
mathType是一个第三方的数学公式插件,生成的是一个带有公式矢量图ole对象插入到文档中,.net使用mathType提供的C#包解析ole对象,但使用java程序无法直接解析,.net依赖于windows环境,无法部署到K8S容器中,本文基于java word poi的基础上提出java + go处理mathType转化为latex的解决方案。
方案探索
目前无较好直接解析mathType的java程序,但反观其它语言却存在解析mathType的解决方案,gith ...
leetcode-852. 山脉数组的峰顶索引
852. 山脉数组的峰顶索引
123456789101112131415161718class Solution { public int peakIndexInMountainArray(int[] arr) { // 二分查找 int i = 0; int j = arr.length - 1; while(true){ int mid = (i + j)/2; if(arr[mid] > arr[mid-1] && arr[mid] > arr[mid+1]){ return mid; }else if(arr[mid]>arr[mid-1]){ i = mid; }else if(arr[mid]<arr[mid-1]){ ...
leetcode-814. 二叉树剪枝
814. 二叉树剪枝
123456789101112131415161718192021222324252627282930313233343536373839/** * 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 Tre ...
leetcode-543. 二叉树的直径
543. 二叉树的直径
123456789101112131415161718192021222324252627282930313233343536373839404142434445/** * 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 { ...
leetcode-523. 连续的子数组和
523. 连续的子数组和
123456789101112131415161718192021222324class Solution { public boolean checkSubarraySum(int[] nums, int k) { int n = nums.length; int[] s = new int[n+1]; for(int i = 1; i <= n; i++){ s[i] = s[i-1] + nums[i-1]; } Map<Integer, Integer> map = new HashMap<>(); for(int i = 0; i < n; i++){ if(s[i+1]%k == 0 && i >= 1){ return true; }e ...
leetcode-525. 连续数组
525. 连续数组
12345678910111213141516171819202122232425262728class Solution { public int findMaxLength(int[] nums) { int n = nums.length; int[] s = new int[n+1]; for(int i = 1; i <= n; i++){ if(nums[i-1] == 0){ s[i] = s[i-1] -1; }else{ s[i] = s[i-1] + nums[i-1]; } } int ans = 0; Map<Integer, Integer> map = new HashMap<>(); for(int ...