无题
第454题.四数相加II给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。
为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1 。
例如:
输入:
A = [ 1, 2]
B = [-2,-1]
C = [-1, 2]
D = [ 0, 2]
输出:
2
解释:
两个元组如下:
(0, 0, 0, 1) -> A[0] + B[0] + C[0] + D[1] = 1 + (-2) + (-1) + 2 = 0
(1, 1, 0, 0) -> A[1] + B[1] + C[0] + D[0] = 2 + (-1) + (-1) + 0 = 0
123456789101112131415func fourSumCount(nums1 []int, nums2 []int, nums3 []int, nums4 ...
无题
1. 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
1234567891011func twoSum(arr []int, target int) []int { length := len(arr) for i := 0; i < length; i++ { for j := i + 1; j < length; j++ { if (arr[i] + arr[j]) == target { return []int{i, j} } } } return []int{}}
123456789101112/ ...
无题
349. 两个数组的交集题意:给定两个数组,编写一个函数来计算它们的交集。
说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。
123456789101112131415func intersection(arr1 []int, arr2 []int) []int { set := make(map[int]struct{}) var res []int for _, v := range arr1 { set[v] = struct{}{} } for _, v := range arr2 { // 如果存在上一个数组,则加入结果集,并清空该set值 if _, ok := set[v]; ok { res = append(res, v) delete(set, v) } } return res}
无题
242.有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true
示例 2: 输入: s = “rat”, t = “car” 输出: false
说明: 你可以假设字符串只包含小写字母。
1234567891011121314151617func isAnagram(s1 string, s2 string) bool { if len(s1) != len(s2) { return false } mymap := make(map[string]int) for _, i := range s1 { s := string(i) mymap[s]++ } for _, i := range s2 { s := string(i) if mymap[s] == 0 { return false } } return true}
12 ...
无题
142.环形链表II题意: 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
为了表示给定链表中的环,使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。
说明:不允许修改给定的链表。
123456789101112131415func detectCycle(head *ListNode) *ListNode { slow, fast := head, head for fast != nil && fast.Next != nil { slow = slow.Next fast = fast.Next.Next if slow == fast { for slow != head { slow = slow.Next head = head.Next } ...
无题
19.删除链表的倒数第N个节点给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
进阶:你能尝试使用一趟扫描实现吗?
示例 1:
输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2:
输入:head = [1], n = 1 输出:[] 示例 3:
输入:head = [1,2], n = 1 输出:[1]
1234567891011121314151617181920212223/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func removeNthFromEnd(head *ListNode, n int) *ListNode { dummyHead := &ListNode{} dummyHead.Next = head cur := head prev := dummyH ...
无题
十四、Gateway新一代网关1、概述简介【1】脑图结构
【2】官网
上一代zuul 1.X
当前gateway
【3】是什么?Cloud全家桶中有个很重要的组件就是网关,在l.x版本中都是采用的Zuul网关;但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloud Gateway。一句话:gateway是原zuul1.x版的替代。
Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Project Reactor等技术。
Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能, 例如:熔断、限流、重试等
SpringCloud Gateway 是 Spring Cloud 的一个全新项目,基于 Spring 5.0+Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。
SpringCl ...
无题
1、Java BIO、AIO、NIO了不了解?
BIO (Blocking I/O)BIO 属于同步阻塞 IO 模型 。
同步阻塞 IO 模型中,应用程序发起 read 调用后,会一直阻塞,直到内核把数据拷贝到用户空间。
在客户端连接数量不高的情况下,是没问题的。但是,当面对十万甚至百万级连接的时候,传统的 BIO 模型是无能为力的。因此,我们需要一种更高效的 I/O 处理模型来应对更高的并发量。
NIO (Non-blocking/New I/O)Java 中的 NIO 于 Java 1.4 中引入,对应 java.nio 包,提供了 Channel , Selector,Buffer 等抽象。NIO 中的 N 可以理解为 Non-blocking,不单纯是 New。它是支持面向缓冲的,基于通道的 I/O 操作方法。 对于高负载、高并发的(网络)应用,应使用 NIO 。
Java 中的 NIO 可以看作是 I/O 多路复用模型。也有很多人认为,Java 中的 NIO 属于同步非阻塞 IO 模型。
跟着我的思路往下看看,相信你会得到答案!
我们先来看看 同步非阻塞 IO 模型。
...
无题
计算机网络第三章:数据链路层3.1 数据链路层概述
1、数据链路层传输和处理数据的单位是(D)
A、报文段 B、比特流 C、数据段 D、桢
2、下列不属于数据链路层功能的是(D)
A、封装成桢 B、差错检测 C、可靠传输 D、拥塞控制
3、共享式以太网的媒体接入控制协议和802.11局域网的媒体接入控制协议分别是(A)
A、CSMA/CD,CSMA/CA B、CSMA/CD,CDMA
C、CSMA/CA,CDMA D、CSMA/CA,Wi-Fi
4、下列属于数据链路层的互联设备是(B)
A、集线器 B、网桥和交换机 C、路由器 D、网关
...
无题
206.反转链表
题意:反转一个单链表。
示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
1234567891011121314// 双指针func reverseList(head *Node) *Node { var pre *Node cur := head for cur != nil { nextNode := cur.NextNode cur.NextNode = pre pre = cur cur = nextNode } return pre}
12345678910111213// 递归func reverseList(head *ListNode) *ListNode { return help(nil, head)}func help(pre, head *ListNode)*ListNode{ if head == nil { ...