个数offer

PTA 组最小个数

import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class Main{ public static void main(String[]args) { ArrayList<In ......
个数 PTA

剑指offer 从未到头打印链表

之前写的,利用栈先进后出的原理,把链表压进栈,再打印就行了,非常简单。可能是为了之后的反转链表铺垫。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNod ......
从未 offer

剑指offer 替换空格

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 注意下,字符用单引号' '括起来,字符串用双引号“ ”起来,那么“%20”就是一个字符串 里面有三个字符,而替换的空格只有一个字符。 所以替换大概是这样,找到第一个空格,字符串扩容两格,把第一个空格后面的字符统统向后移动两位,让后从第一个 ......
空格 offer

剑指 Offer 64. 求1+2+…+n

题目描述: 题解: 利用带短路效应的递归 class Solution{ public int sumNums(int n){ boolean x = n>1&&(n+=sumNums(n-1))>0; return n; } } ......
Offer 64

约瑟夫环(动态规划):剑指 Offer 62. 圆圈中最后剩下的数字

题目描述: 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩 ......
圆圈 数字 动态 Offer 62

剑指 Offer 61. 扑克牌中的顺子

题目描述: 从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。 2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 限制: 数组长度为 5 数组的数取值为 [0, 13] . 方法:排序 + 遍历 clas ......
扑克牌 扑克 Offer 61

剑指 Offer 58 - I. 翻转单词顺序

题目描述: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。 例如输入字符串"I am a student. ",则输出"student. a am I"。 ......
单词 顺序 Offer 58

代码随想录算法训练营第16天 | ● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数 - 第6章 二叉树 part03

第六章 二叉树part03 今日内容: ● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数 迭代法,大家可以直接过,二刷有精力的时候 再去掌握迭代法。 详细布置 104.二叉树的最大深度 (优先掌握递归) 什么是深度,什么是高度,如 ......
深度 随想录 训练营 节点 随想

剑指 Offer II 039. 直方图最大矩形面积

题目链接:[剑指 Offer II 039. 直方图最大矩形面积](https://leetcode.cn/problems/0ynMMM/) ## 方法:单调栈 ### 解题思路 - 以直方图中的某一条为高的最大(面积)矩形的宽度为 $r - l + 1$,其中 $r$ 表示在其右边第一个小于(或 ......
直方图 矩形 面积 Offer 039

动态规划:剑指 Offer 60. n个骰子的点数

题目描述: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。 方法:动态规划 class Solution{ public double [ ......
骰子 点数 动态 Offer 60

剑指 Offer 57 - II. 和为s的连续正数序列

题目描述: 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 方法:滑动窗口(双指针) class Solution{ public int[][] findContinuousSequen ......
正数 序列 Offer 57 II

1-10的数组,按指定的个数,依次取,计算每次取到的数组

### 第一种方法 ``` $v){ $newkaochang=array_splice($kaochang,$v); $remove=array_diff($kaochang,$newkaochang); $kaochang=$newkaochang; $temp[$k]=$remove; } p ......
数组 个数 10

剑指Offer58-II.左旋转字符串——学习笔记

###题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 **示例1:** ``` 输入: s = "abcdefg", k = 2 输出: ......
左旋 字符串 字符 笔记 Offer

剑指Offer 05.替换空格——学习笔记

###请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 **示例 1**: ``` 输入:s = "We are happy." 输出:"We%20are%20happy." ``` **限制**: - `0 <= s 的长度 <= 10000` **题解**: ```java clas ......
空格 笔记 Offer 05

代码随想录算法训练营第十六天|104. 二叉树的最大深度、559. N 叉树的最大深度、111. 二叉树的最小深度、222. 完全二叉树的节点个数

【参考链接】 104. 二叉树的最大深度 【注意】 1. 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)。 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数或者节点数(取决于高度从0开始还是从1开始)。 2.根节点的高度就是二叉树的 ......
深度 随想录 训练营 节点 随想

(双指针)剑指 Offer 57. 和为s的两个数字

题目描述: 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。 class Solution{ public int[] twoSum(int nums[],int target){ int i=0,j=nums.length ......
指针 两个 数字 Offer 57

求一个数所有因子的集合的子集中满足所有数均互质的最大子集

题意: 很明显了,就是把数 n 的所有因子求出来,在里面挑选一些数,使这些数之间均互质,求这些的最大个数。 结论: 先讲结论:最大个数为数 n 的质因数个数加1 思路: 我们已知一个数的质因数,就可以把这个数表示成若干质因数的乘积,例如: 12 = 2 * 2 * 3;其中2,3是12的质因数,表达 ......
子集 因子 个数

java removeAll 返回2个数组的差集

* 注意:removeAll不是差集 ``` import java.util.ArrayList; public class ImoocStudent { public static void main(String args[]){ ArrayList objArray = new ArrayL ......
差集 removeAll 个数 java

剑指 Offer 56 - II. 数组中数字出现的次数 II

题目描述: 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 int[] counts = new int[32]; for(int i = 0; i < nums.length; i++) { for(int j = 0; j < 32; j++ ......
数组 次数 数字 Offer II

对10个数进行排序

>对10个数进行排序。 ````c #include #define N 10 int main() { int i,j,a[N],s; printf("请输入10个数\n"); for(i=0;ia[j]) { min=j; } } if(min!=i) { s=a[min]; a[min]=a[ ......
个数

剑指 Offer 56 - I. 数组中数字出现的次数

题目描述: 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。 要求时间复杂度是O(n),空间复杂度是O(1)。 设 nums=[3,3,4,4,1] ,以上计算流程如下图所示。 本题难点: 数组 nums 有 两个 只出现一次的数字,因此无法通过异 ......
数组 次数 数字 Offer 56

剑指 Offer II 018(Java). 有效的回文(简单)

题目: 给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。 本题中,将空字符串定义为有效的 回文串 。 示例 1: 输入: s = "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpan ......
回文 Offer Java 018 II

LeetCode 222. 完全二叉树的节点个数

``` class Solution { public: int countNodes(TreeNode* root) { if(!root) return 0; auto l=root->left,r=root->right; int x=1,y=1;//记录左右两边层数 while(l) l=l ......
节点 个数 LeetCode 222

剑指 Offer 52. 两个链表的第一个公共节点

题目描述: 解题思路: class Solution{ public ListNode getIntersectionNode(ListNode headA,ListNode headB){ ListNode A = headA,B=headB; while(A!=B){ A=A!=null?A.n ......
节点 两个 Offer 52

归并排序:剑指 Offer 51. 数组中的逆序对

题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 限制: 0 <= 数组长度 <= 50000 合并阶段 本质上是 合并两个排序数组 的过程,而每当遇到 左子数组当前元素 > 右子数组当前元素 时, 意味着 「左 ......
逆序 数组 Offer 51

求int型正整数在内存中存储时1的个数

描述 输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。 数据范围:保证在 32 位整型数字范围内 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数 示例1 输入:5 输出:2 示例2 输入:0 输出:0 1 public sta ......
整数 个数 内存 int

动态规划:剑指 Offer 49. 丑数

题目描述: 我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 因此,可设置指针 a,b,c 指向首个丑数(即 1 ),循环根据递推公式得到下个丑数,并每轮将对应指针执行 +1 即可。 class Solution{ public int ......
动态 Offer 49

动态规划:剑指 Offer 46. 把数字翻译成字符串

题目描述: 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。 一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 提示: 0 <= num < 231 解题思路: 根据 ......
字符串 字符 数字 动态 Offer

abc242E 求解小于等于一个字符串的回文串的个数

题目链接:[E - (∀x∀)](https://atcoder.jp/contests/abc242/tasks/abc242_e "E - (∀x∀)") 考虑26进制,将字母A~Z 折算成数字0~25,求得最大的可能的回文字符串的26进制值即为答案 ```cpp //>>>Qiansui #i ......
回文 字符串 字符 个数 242E

剑指 Offer 31. 栈的压入、弹出序列

题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序 ......
序列 Offer 31