All

杨辉三角—LeetCode118
2019 年 05 月 05 日

题目描述

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]

nginx源码编译安装
2019 年 04 月 11 日

题目描述

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。

示例 1:

输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2:

输入: head = [4,5,1,9], node = 1 输出: [4,5,9] 解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.

说明:

链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中的一个有效节点。 不要从你的函数中返回任何结果。

背景

随着现在小程序的流行,许多软件也将web页面转移到小程序之中。让用户更方便的使用。当我们做了微信和支付宝两个的小程序后,意味着我们要将两个二维码展示给用户扫码。所以当需要将微信、支付宝小程序二维码合一,或者对其做一些自定义操作时,就不能再使用官方提供的二维码生成接口。

微信、支付宝官方也提供了自定义二维码的文档:

微信:https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html

支付宝:https://docs.alipay.com/mini/introduce/vzd5v0

所以通过上面的设置就可以实现二维码合一的操作。

原理解析

  1. 二维码存储的是一串信息,微信官网二维码里面可能存储的为:https://weixin.com?appid=123。支付宝二维码存储的可能是:https://alipay.com?appid=abc。这种有一定规则的信息。
  2. 我们通过两个的自定义设置,将访问两者小程序的二维码信息进行合一。比如,定义:https://www.abc.com,让微信和支付宝扫描到这个信息后都跳转到我们的小程序中。那就可以实现二维码合一。

题目描述

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。

注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

示例 1:

输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。 示例 2:

输入: [1,2,3,4,5] 输出: 4 解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。 因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。 示例 3:

输入: [7,6,4,3,1] 输出: 0 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0

题目中给出数组,第i个元素表示第i天的价格,我们要做的是求出能获取的最大利润,并且没有限制购买次数,我们可以第一天买入,最后一天卖出。也可以当天买入,第二天就卖出,然后再买入,再卖出。但是我们只能同时有一笔交易。

爬楼梯-LeetCode70
2019 年 03 月 16 日

题目描述

链接: https://leetcode-cn.com/problems/climbing-stairs/

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。问你有多少种不同的方法可以爬到楼顶?

示例 1:

输入: 2 输出: 2 有两种方法可以爬到楼顶。

第一种: 1 阶 + 1 阶

第二种: 2 阶

示例 2:

输入: 3

输出: 3

有三种方法可以爬到楼顶。

  1. 1 阶 + 1 阶 + 1 阶
  2. 1 阶 + 2 阶
  3. 2 阶 + 1 阶
微信小程序支付
2019 年 03 月 15 日

微信小程序支付流程:

wxa-7-2

根据流程图,我们支付的流程应该是:

  1. 用户在微信小程序点击下单,小程序请求我们自己的后台程序

  2. 后台在接收到下单请求后,先进行自己的业务逻辑,生成预订单,然后请求微信的下单接口。微信接口对我们请求进行校验,通过后返回 prepay_id(预付款 id)。

    • 在这里要获取小程序用户的 openid。一般在下单前就获取到了,或者在这里再进行访问微信接口进行获取
    • 发送请求时需要经过签名等操作
    • 在向微信请求时,参数中有一个通知地址,支付成功后微信会向这个地址发送通知。
    • 拿到 prepay_id 后,需要再次签名。然后将数据返回给小程序
  3. 微信小程序获取到请求响应,响应数据里面有预付款 id,然后通过微信提供的支付方法进行付款。

  4. 付款成功后,微信会向下单时提供的通知地址发送通知。通知数据里面有实际付款金额等信息。

题目描述

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2:

输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3:

输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

要注意这个题目最后要求返回的是长度,并不是最长的子串内容是什么