240 发简信
IP属地:广东
  • 75、31、287

    75 这道题用双指针解,指针p0指向0应该在的位置,p1指向1应该在的位置。遍历数组,碰到1那就交换元素,增加指针,碰到0也交换元素,同时增加p0和p1两个指针。装入0两个指...

  • 72、136、169

    72 dp[i][j]表示word1中下标为i-1的变换成word2中下标为j-1的需要变换的最小次数为dp[i][j]。递推关系:如果当前两个数组的元素相同,那么 dp[i...

  • 64、5、1143

    64 这道题用二维dp解思路就很清晰了,dp[i][j]表示i、j处的最小值,这个最小值是左边dp和上边dp的最小数再加上当前位置的元素值。初始化时要先对第一行和第一列初始化...

  • 416、32、62

    416 这道题是0-1背包的问题,题意可以转化为背包容量为sum/2,存放的最大价值也是sum/2。dp[i]表示容量为i的背包存放的最大价值是dp[i],如果dp[i]==...

  • 139、300、152

    139 这道题是完全背包类问题,可以把字符串当作背包,字典当作物品,同时本题求解的是排列数。dp[i]表示字符串数量为i的背包能否在字典中找到对应的字符,能就是true,否则...

  • 198、279、322

    198 这道题可以用二维dp做,dp[i][0]表示第i间房偷,dp[i][1]表示第i间房不偷,dp[i][0]=dp[i-1][1]+nums[i];dp[i][1]=m...

  • 763、70、118

    763 这道题的思路是记录每个字母出现的最远下标,以例子1为例,a出现的最远下标是8,那么如果在[0,8]这个范围内的任何一个字母的最远下标没有超过8,那么第一个字符串就要在...

  • 121、55、45

    121 这道题的思路是贪心:题目的意思是只买卖一次股票,买卖不能是同一天。遍历过程中更新买入价格的最小值、利润的最大值,这样就可以保证卖出一定是在买入后面。 55 这道题的思...

  • 215、347、295

    215 这道题的思路是利用排序来求得倒数第k个元素,这里的排序可以不用完全进行,利用快排的特点,在快排后返回最大元素的下标,如果这个下标大于nums.size()-k,那就对...

  • 394、739、84

    394 这道题用栈解答的思路是在遇到非"]"之前,把所有的元素放入栈中,等到遍历到'']"后就把元素依次从栈中弹出,在"["之前的元素都是字符串,这个字符串是倒序的,可以再把...

  • 4、20、155

    4 这道题的思路是假设中位数的序号是k,那么只要按照从小到大的顺序找到k个数就行。因为不涉及到合并,那么假定一开始A、B数组都从k/2-1的下标开始比较,这样A数组提供了K/...

  • 120
    34、33、153

    34 这道题的思路:用两次二分法去查找数值。这里的二分法涉及重复元素的问题,一次二分肯定能找到一个元素,设置当中间节点的值大于或者等于目标值时就移动右端点,就能得到重复元素的...

  • 120
    51、35、74

    51 这道题算是回溯里面的难题。这个图能更好地理解回溯。 由上图可以将思路定为:采用回溯,用列控制每一个行中Q放的位置,如果当前Q放的位置合乎要求,那么就放置并递归,最后如果...

  • 22、79、131

    22 这道题的大体思路还是回溯,可以把n对括号想象成一个长度是2*n的数组,这样就能用回溯的角度看问题。因为有左右括号的限制,所以这里先放左括号,当左括号数量等于n的时候再开...

  • 78、17、39

    78 这道题是回溯的解法,之前回溯都是根据遍历得到的长度等于数组的长度时就返回,这里数组的长度其实是变化的,所以这里用一个for循环来表示数组长度的变化,之后在for循环内按...

  • 236、124、46

    236 这道题的思路是对于任意的一个祖先,一定是一棵树,至少存在一个子树,所以遍历子树,如果子树是p、q那么就返回标记true,如果两个子树都返回true,那么该节点就一定是...

  • 114、105、437

    114 题目中已经告知是前序遍历,所以可以在处理中间节点的时候将二叉树的节点加入到栈中。另一个问题是要修改栈中节点的前驱和后驱节点,所以在递归完成之后对栈中的元素修正即可。 ...

  • 98、230、199

    98 这道题因为是二叉搜索树,从最左边的节点一直到最右边的节点是按照递增排序的,如果前面的值比后面的值大就不满足题目条件。所以可以采用中序遍历,维护一个变量来记录最大值,满足...

  • 542、102、108

    542 这道题的思路优点难想,两个节点之间的距离是节点数-1,所以问题可以转化为求取节点数最多的情况。每一个路径都是由某一个中间节点开始,从左边到右边,这样的话最多节点的路径...

  • 104、226、101

    104 这道题的思路是:树的最大深度就是左子树与右子树中的最大深度+1,对于每个左子树(右子树),它们的大深度也是一样的求法,所以这里用递归求解,每次递归返回最大的深度。 2...