剑指offer
#
ACTIM__
ACTIM
展开
-
【剑指Offer】24. 反转链表
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseList(ListNode head) { if (head == null || head.next原创 2020-10-09 21:36:03 · 157 阅读 · 0 评论 -
【剑指Offer】面试题40. 最小的k个数(c++ 优先队列 [priority_queue] / 第n大元素线性时间选择 [nth_element])
题目解法一:选择排序 (前n)O(n * k)class Solution {public: vector<int> getLeastNumbers(vector<int>& arr, int k) { vector<int> ans(k); for(int i = 0; i < k; i++){...原创 2020-03-20 21:27:52 · 411 阅读 · 0 评论 -
【剑指Offer】面试题59 - II. 队列的最大值(c++)
题目https://leetcode-cn.com/problems/dui-lie-de-zui-da-zhi-lcof/解题思路使用一个双向链表辅助,保存最大值序列Note:链表中小于后插入的元素的元素,对结果没有影响代码class MaxQueue {private: queue<int> que; list<int> que_vice;...原创 2020-03-07 17:50:54 · 349 阅读 · 1 评论 -
【剑指offer】面试题57 - II. 和为s的连续正数序列
1. 题目输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。题目链接2. 解题思路滑动窗口啦3. 代码class Solution {private: int calc(int i, int j){ return (i + j) * (j - i + 1...原创 2020-03-06 14:01:33 · 173 阅读 · 0 评论 -
【剑指offer】Q4_二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解答# -*- coding:utf-8 -*-class Solution: # array 二维列表 # target 查找目标 def Find(self, t...原创 2019-09-02 23:45:00 · 193 阅读 · 0 评论 -
【剑指offer】Q5_替换空格
题目请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解由于原书使用c++进行叙述,本题实际意在考察数组操作,像下面这种写法肯定不是题目原意# -*- coding:utf-8 -*-class Solution: # s 源字符串 def replaceSpace...原创 2019-09-06 22:19:47 · 184 阅读 · 0 评论 -
【剑指offer】Q6_丛尾到头打印链表(python)
题目输入一个链表,按链表从尾到头的顺序返回一个ArrayList。解# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Nonefrom collections import dequeclass Solut...原创 2019-09-08 16:07:29 · 177 阅读 · 0 评论 -
【剑指offer】Q7_重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解(迭代 使用类似排序树的方法定位结点位置)# -*- coding:utf-8 -*-class TreeNode: def __init__...原创 2019-09-16 18:18:57 · 195 阅读 · 0 评论 -
【剑指offer】Q9_用两个栈实现队列
题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解答两个栈来回倒就能访问栈底了,没啥说的# -*- coding:utf-8 -*-class Solution: def __init__(self): self.stark1 = [] # 用list模拟栈 在后续代码中不得违反栈的操作规则 self.st...原创 2019-09-19 22:31:59 · 184 阅读 · 0 评论