ICode9

精准搜索请尝试: 精确搜索
  • 剑指 Offer II 005. 单词长度的最大乘积2022-03-29 00:02:58

    去重,然后暴力即可,去重时别忘了记录原来的长度 class Solution { public: int max(int a, int b) { return a > b ? a : b; } int maxProduct(vector<string>& words) { int len = words.size(); vector<string> ww; int a[1

  • 剑指 Offer 54. 二叉搜索树的第k大节点2022-03-28 23:02:40

    一、题目    二、题目理解   1.因为是二叉树搜索树(二叉树排序树),所以可以用中序遍历,先右 中 后左 进行(右边最大的)   2.每次dfs的时候 记录一次,当记录数等于 k 的时候,当前值就是最大k节点   3.如果进行右边的时候,没有达到最大k节点,我们继续向左边的子节点进行查找,直到找到

  • 【剑指Offer】-队列的最大值2022-03-28 12:00:34

    题目链接:剑指Offer59 队列的最大值 题目描述: 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value 需要返回 -1 示例 1: 输入: ["MaxQueue","push_back","push_b

  • 剑指 offer#062022-03-27 11:03:53

    题目描述: 这题表述的很明确了,从最末尾的元素开始输出,这让我们想到的数据结构就是栈了。 思路:先把链表中存储的数据压入栈中,然后弹出到一个动态数组vector中,最后返回数组。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *nex

  • 剑指 Offer II 动态规划2022-03-25 20:33:02

    088. 爬楼梯的最少成本 class Solution { public: int minCostClimbingStairs(vector<int>& cost) { int n=cost.size(); vector<int>f(n+1); f[0]=cost[0],f[1]=cost[1]; //走到第i级台阶 最小代价 //状态转移 从前一个或 前两个走

  • 剑指 Offer II 二分查找2022-03-25 19:03:46

    068. 查找插入位置 class Solution { public: int searchInsert(vector<int>& nums, int target) { int l=0,r=nums.size(); nums.push_back(1000000);//一定有数比target大 它在的位置会是最后一个插入的位置 可以直接return l while(l<r) {

  • Offer_73 矩阵置为零2022-03-25 14:04:16

    给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。       思路分享:将每一行每一列首行首列元素为否为零进行保存,然后对于i和j元素是否零,如果为零个,就把i和j的首行和首列元素设置为零; 之后遍历首行和首列元素,如果为零,

  • 【剑指 Offer】 40. 最小的k个数2022-03-21 21:59:09

    文章目录 题目思路代码 题目 思路 找出最小的k个,可以k次冒泡排序,或者快速排序,当基准的索引为k时返回 代码 class Solution { public int[] getLeastNumbers(int[] arr, int k) { if(k>=arr.length) return arr; return quickSort(arr,k,0,arr.lengt

  • 剑指offer第三天——树(2)2022-03-21 21:03:05

    一、JZ7重建二叉树 题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下,可以看出B是A的子结构 1.递归解法。 比较显然的思路, 1.判断根节点值 2.判断左子树是否为空,若proot2为空

  • LeetCode剑指 Offer 13. 机器人的运动范围(DFS + 回溯)2022-03-21 17:34:12

    力扣   解题思路: 开辟一个相同规格的二维数组 book, 将不符合条件的位置设置为 1 ,再利用DFS深度优先搜索 ,找出能到达的最大格子。 class Solution { public: int dir[4][2] = {1 , 0 , -1 , 0 , 0 , 1 , 0 , -1}; void DFS(vector<vector<int>>& book ,int row ,int

  • 【剑指 Offer】 12. 矩阵中的路径 | 搜索与回溯2022-03-21 16:32:50

    文章目录 题目思路构造递归 代码 题目 思路 本题可以用搜索与回溯算法,本质上是递归,当遍历到当前元素时,递归遍历当前元素的上、左、下、右方元素 构造递归 1.边界条件 行列超出索引,返回false;当前元素与字符串单词不符,返回false;当前元素已经匹配到字符串单词最后一位,返回

  • 2022-3-21 剑指offer day382022-03-21 13:35:37

    题1: JZ49 丑数 描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第 n个丑数。   数据范围:0 \le n \le 20000≤n≤2000 要求:空间复杂度 O(n)O(n) , 时间复杂度 O(n)O(n

  • 【剑指 Offer 29. 顺时针打印矩阵】2022-03-21 11:32:18

    模拟+设定边界 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7] 解题思

  • 剑指 Offer 13. 机器人的运动范围2022-03-20 23:34:02

    剑指 Offer 13. 机器人的运动范围 题目 链接 https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/ 问题描述 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方

  • 剑指 Offer 54. 二叉搜索树的第k大节点2022-03-20 23:06:02

    剑指 Offer 54. 二叉搜索树的第k大节点 题目 链接 https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ 问题描述 给定一棵二叉搜索树,请找出其中第 k 大的节点的值。 示例 输入: root = [3,1,4,null,2], k = 1 3 / 1 4   2 输出: 4 提示 1 ≤ k

  • 剑指 Offer 17. 打印从1到最大的n位数2022-03-20 19:35:12

    剑指 Offer 17. 打印从1到最大的n位数 题目 链接 https://leetcode-cn.com/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof/ 问题描述 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 用返回一个整数列表来代替打

  • 剑指 Offer 09. 用两个栈实现队列---java2022-03-20 17:33:04

    用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[n

  • 剑指 Offer 68 - II. 二叉树的最近公共祖先2022-03-20 17:04:52

    剑指 Offer 68 - II. 二叉树的最近公共祖先 题目 链接 https://leetcode-cn.com/problems/er-cha-shu-de-zui-jin-gong-gong-zu-xian-lcof/ 问题描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近

  • 剑指 Offer 68 - II. 二叉树的最近公共祖先2022-03-20 16:33:21

    package leetcode; import java.util.ArrayList; import java.util.List; public class offer_68_2 { //判断是否找出p和q boolean flag1=false; boolean flag2=false; public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {

  • 剑指 Offer II 007. 数组中和为 0 的三个数2022-03-20 16:04:24

    题目 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a ,b ,c ,使得 a + b + c = 0 ?请找出所有和为 0 且 不重复 的三元组。 示例 输入:nums = [-1,0,1,2,-1,-4] 输出:[[-1,-1,2],[-1,0,1]] 输入:nums = [] 输出:[] 输入:nums = [0] 输出:[] 来源:力扣(LeetCode) 链接:htt

  • 剑指 Offer II 068. 查找插入位置2022-03-20 14:34:23

    题目 给定一个排序的整数数组 nums 和一个整数目标值 target ,请在数组中找到 target ,并返回其下标。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 输入: nums = [1,3,5,6], target = 5 输出: 2 输入: nums = [1,3

  • 【剑指 Offer 24. 反转链表】2022-03-20 11:35:54

    中间栈 双指针 递归 题目描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解题思路 方法一:中间栈 利用中间栈来反转链表,但效率极低: 算法流程: 当链表不为空,将链表中的值依次拿到中

  • 剑指 Offer 48. 最长不含重复字符的子字符串2022-03-20 00:03:00

    剑指 Offer 48. 最长不含重复字符的子字符串 3. 无重复字符的最长子串

  • 4面字节跳动拿到2-2-Offer,入职就是30K16薪,全靠这份Android知识点PDF大全2022-03-19 19:58:41

    自我介绍介绍下Android的mvc/mvp/mvvmview的事件分发机制viewGroup 怎么知道view有没有消费事件写一个单例模式(解释单例模式中的sync,双锁,volidate)算法题目: 有A和B两个有序数组(数组元素不重复),给出sum,请找到A和B中所有相加和为sum的序列对(面头条遇到的) A:[1,4,5] B:[3,4,6] su

  • 2020-更新---腾讯-Android-面试-(已拿到月薪22K-offer),android应用开发实战第二版pdf2022-03-19 19:32:46

    可以从 1.如何发现问题, 2.怎么解决问题, 3.解决效果对比, 这几个方面去描述。举个简单例子——UI优化,可以从 UI出现什么问题(卡顿不流畅),怎么查找问题(手机开发者权限>GPU过度绘制 发现层级问题,Tra ceView CPU使用情况分析),怎么解决问题(降低层级、自定义View绘图出现问题等),

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有