- 博客(12)
- 收藏
- 关注
原创 190. 颠倒二进制位
题目描述 思路一 用一个变量res存储结果, 依次得到要转换数字的低位,然后保存在res中,res每得到一位后进行左移腾出一位用来保存下一位。 一个例子 原数字 1011 ,res = 0 res 左移一位,res = 0, 得到 1011 的最低位 1 加过来, res = 1 1011 右移一位变为 101 res = 1 左移一位,res = 10, 得到 101 的最...
2019-12-30 14:12:46 194
原创 189. 旋转数组
题目描述 思路一 使用额外空间。就是说之前位置为下标i的值,经过移动后值的位置变成了(i+k) % len(nums),所以使用一个额外的数组空间进行存储,再将新数组赋值给nums。 func rotate(nums []int, k int) { temp := make([]int, len(nums)) for i, val := range nums { ...
2019-12-30 10:55:11 104
原创 172. 阶乘后的零
题目描述 思路分析 具体对于5! = 5 * 4 * 3 * 2 * 1 = 120,结果有一个0,原因是存在一对2 * 5 = 10,对于10来说,只有2 * 5可以构成,所以需要在阶乘中查找有多少对2 * 5。 在看一个例子: 11! = 11 * 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 11 * (2 * 5) * 9 * (4 * 2) * 7 ...
2019-12-18 10:58:16 152
原创 171&168. Excel表列序号转换
Excel表列名称 给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ... 示例 1: 输入: 1 输出: “A” 示例 2: 输入: 28 输出: “AB” 本质上...
2019-12-18 09:55:52 378
转载 什么是倒排索引?(转)
转自:什么是倒排索引 什么是倒排索引? 不多说,直接上干货! 见其名知其意,有倒排索引,对应肯定,有正向索引。 正向索引(forward index),反向索引(inverted index)更熟悉的名字是...
2019-12-17 16:06:17 180
原创 169. 多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 方法一:哈希表 时间复杂度:O(n) 我们将 nums 迭代一次,哈希表的插入是常数时间的。所以总时间复杂度...
2019-12-17 11:39:32 163
原创 160. 相交链表
这道题也是面试当中很常见的考察题,难度简单,但是确实在面试中很考验。 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 输出:Reference of the node...
2019-12-17 10:17:10 115
原创 155. 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0);...
2019-12-16 11:43:28 87
原创 122. 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易...
2019-12-12 10:33:57 107
原创 121. 买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润...
2019-12-11 10:59:22 125
原创 100. 相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 递归方法: /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } ...
2019-12-03 00:18:33 118
原创 70. 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 方法一:暴力法 func climbStairs(n int) int { if n <= 3 { return n } return climbStairs(n - 1) + climbStairs(n - ...
2019-12-02 10:55:09 132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人