上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
摘要: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 基础的二分查找,唯一需要注意的就是移位运算的优先级很低,需要加括号。 1 class Solution { 2 public: 阅读全文
posted @ 2020-07-24 20:09 __rookie 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。 第一种方法,置换,把每个x放到x-1的位置上(减一是因为这里是说正整数,如果不减一会没法处理到0号位置的数)。这样做完之后重新遍历,第一个不等于位置x+1的数就是答案。 1 class Solution { 2 public: 3 in 阅读全文
posted @ 2020-07-24 17:57 __rookie 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 可以遍历然后存起来,然后空间换时间。 也可以递归,但是递归的方法需要巧妙一点。 这里借用windliang的解法 阅读全文
posted @ 2020-07-23 22:33 __rookie 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 编写一个程序,找到两个单链表相交的起始节点。 先遍历一遍两个链表,记录长度,然后将长的那一侧先移动,移动到两个链表剩下的长度相同,然后同步移动两个指针,直到相遇或结束。 注意diff正负的问题,不要diff--导致longer往后移动到null。 1 /** 2 * Definition for s 阅读全文
posted @ 2020-07-22 16:43 __rookie 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例 1: 输入:[3,4,5,1,2]输出:1示例 2: 输入:[2,2,2 阅读全文
posted @ 2020-07-22 16:18 __rookie 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 对于每一个节点,计算一个以该节点为根节点,且经过该节点的子树中的最大价值路径,记为maxgain。maxgain等于该节点的值加上左子树的maxgai 阅读全文
posted @ 2020-07-22 15:28 __rookie 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 递归判断就可以了。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 阅读全文
posted @ 2020-07-21 16:52 __rookie 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 递归: 递归到尾节点,然后往回;每次都是返回尾结点。对于每个递归栈的head,将head->next->next设置为 阅读全文
posted @ 2020-07-21 16:40 __rookie 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。它应该支持以下操作:get 和 put。 get(key) - 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1。put(key, value) - 如果键已存在,则变更其值;如果键不存在,请插入键值对。当缓存达到其容量时,则应该 阅读全文
posted @ 2020-07-21 16:14 __rookie 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 这个题找规律不难,只用判断一下长度为1和长度为2的特殊情况就可以了。 注意==运算符的优先级高于&运算符。 1 /** 2 * Definition for singly-linked li 阅读全文
posted @ 2020-07-20 15:26 __rookie 阅读(109) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 13 下一页