随笔分类 - 编程刷题
FOR 面试做准备
摘要:我们常会遇到比如司机在线时长统计的这种类型计算, 如 求并集[1,2],[4,5],[5,9],结果是[1,2],[4,9] 求所有的交集为[] 但是求相交部分为[1,2],[5,5], 三个类型,对应下面三个小函数 type TimeInterval struct { Start int End
阅读全文
摘要:两道题目,限时一小时,从零到一完全实现。 第一题:https://leetcode-cn.com/problems/kth-missing-positive-number/ 第二题:https://leetcode-cn.com/problems/profitable-schemes/ 题目一: n
阅读全文
摘要:给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。 [3,1,2,5,2,4] 输出 5 func maxWater( arr []int ) int64 { // write code here if len(arr) <3{return 0} wa
阅读全文
摘要:问题:给定一个函数rand5(),该函数可以随机生成1-5的整数,且生成概率一样。现要求使用该函数构造函数rand7(),使函数rand7()可以随机等概率的生成1-7的整数。 思路:先扩区间,再取模,即构造大的整数区间,限制整数区间,最后映射整数区间。 rand7 int Rand5() { re
阅读全文
摘要:问题:二维数组行列递增排列,求找target位置 思路1:从左下方依次遍历 func findKey(arr [][]int, target int)(int, int){ col := len(arr)-1 row := len(arr[0])-1 i := 0 for i<=row && col
阅读全文
摘要:编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。 如果是有效的 IPv4 地址,返回 "IPv4" ;如果是有效的 IPv6 地址,返回 "IPv6" ;如果不是上述类型的 IP 地址,返回 "Neither" 。IPv4 地址由十进制数和点来表示,每个地址包含 4 个十进
阅读全文
摘要:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 func pathSum(root *TreeNode, sum int) [][]int { ret := [][]int{} path := []int{} dfs(&r
阅读全文
摘要:给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 func mergeKLists(lists []*ListNode) *ListNode { if len(lists)==0{ return nil } if len(lists) == 1{
阅读全文
摘要:给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 func spiralOrder(matrix [][]int) []int { if len(matrix) == 0 { return []int{} } dir := 1 row, col :=
阅读全文
摘要:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 func maxSubArray(nums []int) int { if len(nums)==1{ return nums[0] } dp := make([]int,len(nums)) d
阅读全文
摘要:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 func addStrings(num1 string, num2 string) string { nb1, nb2 := []byte(num1), []byte(num2) if len(nb1) < len(nb2) {
阅读全文
摘要:给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeN
阅读全文
摘要:编写一个程序,找到两个单链表相交的起始节点。 func getIntersectionNode(headA, headB *ListNode) *ListNode { curA,curB := headA,headB for curA != curB { if curA == nil { // 如果
阅读全文
摘要:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0
阅读全文
摘要:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 func threeSum(nums []int) [][]int { sort.Ints(
阅读全文
摘要:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 解法:双指针 func lengthOfLongestSubstring(s string) int { start
阅读全文
摘要:题目: 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数 输入 [1,3,5,2,2],5,3 返回值 给定数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。 解法1:快排 func findKth( a []int , n int
阅读全文
摘要:题目描述 设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能 set(key, value):将记录(key, value)插入该结构 get(key):返回key对应的value值 [要求] set和get方法的时间复杂度为O(1) 某个key的set或get操作一旦发生,
阅读全文
摘要:题目描述 给定一个数组,请你编写一个函数,返回该数组排序后的形式。 示例1 输入 复制 [5,2,3,1,4] 返回值 复制 [1,2,3,4,5] func MySort( arr []int ) []int { // write code here if len(arr) < 2{ return
阅读全文
摘要:查找第一个非重复的字符,无得话返回-1,做的时候返回了字符数组的编号,太着急了,枯了。。。。。。。 @Test public void searchfeichong(){ // 查找第一个非重复的字符,无得话返回-1 String str = "dawdhkadh"; char[] sc = str
阅读全文