![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 89
sky_zzk
这个作者很懒,什么都没留下…
展开
-
编程练习题(8)
二叉树的最大路径和给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少。这个路径的开始节点和结束节点可以是二叉树中的任意节点 private int maxVal = Integer.MIN_VALUE; public int maxPathSum (TreeNode root) { // write code here if(root == null){ return 0; } help原创 2021-03-25 11:06:28 · 121 阅读 · 0 评论 -
剑指Offer题目练习
数组二维数组中的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public boolean Find(int target, int [][] array) { int row = 0, col = array[0].length - 1; while (row < array.length &&原创 2021-02-18 10:05:40 · 285 阅读 · 0 评论 -
编程练习题(7)
环形链表给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。Java解法:/* 哈希表 */ /* public boolean原创 2021-01-20 11:10:40 · 393 阅读 · 0 评论 -
编程练习题(6)
买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。Java解法:/* 一次遍历 用一个变量记录一个历史最低价格 minprice,就可以假设股票是在那天买的。那么在第 i 天卖出股票能得到的利润就是 prices[i] - minprice。 因此,只需要遍历价格数组一遍,记录历史最低点,然后比较 prices[原创 2021-01-15 15:51:59 · 604 阅读 · 0 评论 -
编程练习题(5)
交错字符串给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:s = s1 + s2 + ... + snt = t1 + t2 + ... + tm|n - m| <= 1交错 是 s1 + t1 + s2 + t2 + s3 + t3 + ... 或者 t1 + s1 + t2 + s2 + t3 + s3 + ...提示:a + b 意味着字符串原创 2021-01-09 14:27:15 · 193 阅读 · 1 评论 -
编程练习题(4)
搜索二维矩阵编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。Java解法:public static boolean searchMatrix(int[][] matrix, int target) { int m = matrix.length, n = matrix[0].length; int i = 0, j = n -1; whi原创 2020-12-30 10:25:50 · 570 阅读 · 1 评论 -
编程练习题(3)
最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。Java版本:public static int maxSubArray(int[] nums) { int pre = 0, res = nums[0]; for (int val : nums){ pre = Math.max(val, val + pre); res = Math.max(res, pre);原创 2020-12-18 13:55:39 · 434 阅读 · 0 评论 -
经典排序(多版本)
冒泡排序Python版本:# 冒泡排序class Solution: def searchInsert(self, nums: list) -> list: n = len(nums) for i in range(n): for j in range(0, n-i-1): if(nums[j+1] < nums[j]): nums[j + 1], num原创 2020-12-08 17:56:25 · 249 阅读 · 0 评论 -
编程练习题(2)
最长有效括号给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。Python解法:# 从前往后遍历字符串# 1、入栈条件为1.栈为空 2.当前字符是'(' 3.栈顶符号位')',因为三种条件都没办法消去成对的括号。# 2、计算结果:符合消去成对括号时,拿当前下标减去栈顶下标即可class Solution: def longestValidParentheses(self, s: str) -> int: if not s:原创 2020-12-07 16:13:20 · 281 阅读 · 0 评论 -
编程练习题(1)
Z型字符串将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。class Solution: def convert(self, s: str, numRows: int) -> str: if numRows <= 1:return s # 循环 numRows次,即 numRows 行同样字符串 array = [s for i in range(numRows)] # 循环 numRows次,原创 2020-11-25 20:15:01 · 411 阅读 · 1 评论