leetcode周赛补完计划(三)

周赛135

leetcode 1037.有效的回旋镖

解题思路:就是判断三角形的问题,用的斜率方法,坐标抽平行另处理,未优化

public boolean isBoomerang(int[][] points) {
    if((points[0][0] == points[1][0] && points[0][1] == points[1][1]) ||
            (points[0][0] == points[2][0] && points[0][1] == points[2][1]) ||
            (points[1][0] == points[2][0] && points[1][1] == points[2][1]))
        return false;
    double a = (double)(points[0][0]-points[1][0])==0?Integer.MAX_VALUE:(
            (points[0][1]-points[1][1])==0?0:(double)(points[0][0]-points[1][0])/(points[0][1]-points[1][1]));
    double b = (points[1][0]-points[2][0])==0?Integer.MAX_VALUE:(
            (points[1][1]-points[2][1])==0?0:(double)(points[1][0]-points[2][0])/(points[1][1]-points[2][1]));
    if(a == b)
        return false;
    return true;
}

leetcode 1038. 从二叉搜索树到更大和树

解题思路:反向中序遍历(右子树-根节点-左子树)求和,更新节点值

int sum = 0;
void inorder(TreeNode root) {
    if(root.right != null)
        inorder(root.right);
    root.val+=sum;
    sum = root.val;
    if(root.left!=null)
        inorder(root.left);
}

public TreeNode bstToGst(TreeNode root) {
    if(root == null)
        return root;
    inorder(root);
    return root;
}

leetcode 1039. 多边形三角剖分的最低得分

解题思路:和题312戳气球相同解法,题312可能更好理解,原题已给出提示,对于问题A[i]-A[j],选择点k,将问题分解为A[i]-A[k],A[k]-A[j]两个子问题,动态规划求解dp[0][n-1],转移方程:dp[i][i+l] = Min(dp[i][i+l],A[i]*A[k]*A[i+l] + dp[i][k] + dp[k][i+l])

public int minScoreTriangulation(int[] A) {
   int len = A.length;
   int[][] dp = new int[len][len];
   for(int i = 0;i < len - 1;i++){
       for(int j = 0;j <= len - 1;j++) {
           dp[i][j] = Integer.MAX_VALUE;
       }
       dp[i][i+1] = 0;
   }
   for(int l = 2;l < len;l++){
       for(int i = 0;i + l < len;i++){
           for (int k = i + 1; k < i + l; k++) {
               dp[i][i+l] =Math.min(dp[i][i+l],A[i]*A[k]*A[i+l]+dp[i][k]+dp[k][i+l]);
           }
       }
   }
   return dp[0][len-1];
}

leetcode 1040. 移动石子直到连续 II

解题思路:对于maximum_moves,只需要考虑第一次移动,因为之后的每次移动我们都能保证剩余位置-1;对于minimum_moves,利用长度为stones.length的滑动窗口,满足窗口内的端点最多,窗口内空余的端点数量即为最小移动次数。特殊情况:窗口内石子连续,边缘有空,则需要移动2次。

public int[] numMovesStonesII(int[] stones) {
    Arrays.sort(stones);
    int len = stones.length;
    int max = stones[len-1] - stones[0] + 1 - len, min = max;
    max -= Math.min(stones[len-1] - stones[len-2] - 1,stones[1] - stones[0] - 1);
    int j = 0;
    for(int i = 0;i < len;i++){
        while (j + 1 < len && stones[j+1] - stones[i] < len)
            j++;
        int mi = len - (j - i + 1);
        if(j - i + 1 == len - 1 && stones[j] - stones[i] + 1 == len - 1)
            mi = 2;
        min = Math.min(mi,min);
    }
    int[] res = {min,max};
    return res;
}
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值