题意 给你\(n\)和\(m\),问满足以下条件的数列的个数: 数列长度为\(n\) 数列值域范围为\(\left[1,m\right]\) 数列有且仅有一对相等的数 数列是单峰数列(先严格递增后严格递减,严格递增或严格递减) 解题思路 首先从\(m\)元素中挑出\(n-1\)个不同的值,有\(C_m^{n-1}\)种方法.现在数列的值域就可以只看成\(\left[1,n-1\right]\)了. 然后这\(n-1\)个元素中,先放置好\(n-1\),假设重复元素的值为\(i(i\in\left…
D. Count the Arrays 也是一个计数题. 题目大意: 要求构造一个满足题意的数列. \(n\) 代表数列的长度 数列元素的范围 \([1,m]\) 数列必须有且仅有一对相同的数 存在一个位置 \(i\),使得小于 \(i\) 这个位置的是严格递增的,大于这个位置则是严格递减的. 这个题目也很容易把自己绕晕,所以我们要想开点... 不要去太细节的考虑哪一个位置放什么之类的,而是考虑如何构造满足条件的序列. 因为序列长度是 \(n\),范围是 \(m\),而且又必须有一对相同的数.…
题目链接:http://codeforces.com/problemset/problem/451/D D. Count Good Substrings time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output We call a string good, if after merging all the consecutive equ…
题意:有n个点上可能有楼房,从前面可以看到x栋楼,从后面可以看到y栋,问楼的位置有多少种可能. 印象中好像做过这个题,…
题意: 从 m 个数中选 n - 1 个数组成先增后减的长为 n 的数组. 思路: 因为 n 个数中有两个数相同,所以每种情况实际上只有 n - 1 个不同的数--$c_m^{n - 1}$, 除去最大数,相同的数有 n - 2 种可能--${n-2}$, 最大数.相同的数排好后,剩余 n - 3 个数可能在最大数左边或右边--${2^{n - 3}}$, 所以答案即为:${(n-2)}{2^{n-3}}c_m^{n-1}$. 对组合数的阶乘公式进行化简,拆分为 n - 1 个分式,使用费马小定…
本系列导航 本系列其他文章目录请戳这里. 1.名字.约束时间(Binding Time) 在本篇博文开始前先介绍两个约定:第一个是“对象”,除非在介绍面向对象语言时,本系列中出现的对象均是指任何可以有名字的东西,比如变量.常量.类型.子程序.模块等等.第二个是“抽象的”,因为我们讨论的是语言的核心概念,所以“抽象的”具体指代的是语言特征与任何计算机体系结构分离的程度. 如果可以给名字下个定义,那么它是代表某东西的一些助记字符序列.就好比张三.李四,对应到大部分语言中一般可以等价为“标识符”.名字…
题目: A 2d grid map of m rows and n columns is initially filled with water. We may perform an addLand operation which turns the water at position (row, col) into a land. Given a list of positions to operate, count the number of islands after each addLa…
AbstractStringBuilder是一个抽象类,是StringBuilder和StringBuffer的父类,分析它的源码对StringBuilder和StringBuffer代码的理解有很大的帮助. 先来看看该类的声明: abstract class AbstractStringBuilder implements Appendable, CharSequence {} 该类实现Appendable和CharSequence接口. 成员变量: char[] value;//字符数组用来…
前言:周末闲来无事,在七月在线上看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家.什么字符串在算法中有多重要之类的大路边上的客套话就不多说了,直接上笔记吧. 一.字符串 java:String内置类型,不可更改.(如需更改可考虑:StringBuffer, StringBuilder,char[]等) 二.归类 字符串涉及到的相关题型通常会是以下几个方面: 概念理解:字典序 简单操作:插入删除字符.旋转 规则判断(罗马数字转换 是否是…
==数组 Medium== 40.(162)Find Peak Element JAVA //斜率思想,二分法 class Solution { public int findPeakElement(int[] nums) { int l=0,r=nums.length-1; while(l<r){ int mid = (r+l)/2; if(nums[mid]>nums[mid+1]) r = mid; else l = mid+1; } return l; } } 41.(731)My C…
StringBuilder StringBuffer 源码 这里只是我个人笔记, 并没有在这篇文章里做任何技术分享, 请同学们绕道- -.如果需要我会后期补上的..... 本来是想分析源码来着, 但是发现这部分源码相对简单.....比较容易看懂... 最近看了StringBuilder StringBuffer的源码, 自己新建为了MyStringBuilder MyStringBuffer. 代码贴了出来, 留个记录, 当做笔记了. (或者github:https://github.com/G…
Given a string s and a string t, check if s is subsequence of t. You may assume that there is only lower case English letters in both s and t. t is potentially a very long (length ~= 500,000) string, and s is a short string (<=100). A subsequence of…
这是悦乐书的第234次更新,第247篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第101题(顺位题号是455).假设你是一个很棒的父母,并想给你的孩子一些饼干.但是,你应该给每个孩子一个饼干.每个孩子我都有一个贪婪因子gi,这是孩子满意的cookie的最小尺寸;每个cookie j的大小为sj.如果sj> = gi,我们可以将cookie j分配给孩子i,而孩子我将满足.您的目标是最大化满足您孩子的数量并输出.例如: 输入:[1,2,3],[1,1] 输出:1 说…
[抄题]: There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided input is the start and end coordinates of the horizontal diameter. Since it's horizontal, y-coordinates don't matter and hence the x-coordinate…
[抄题]: Given an array of n integers nums and a target, find the number of index triplets i, j, k with 0 <= i < j < k < n that satisfy the condition nums[i] + nums[j] + nums[k] < target. Example: Input: nums = [-2,0,1,3], and target = 2 Outpu…
前 每逢周末就遇雨期,闲暇之余,捣鼓了下python,心心念想学习,今天就在电脑上装了个2.7,学习了下经典算法,冒泡与选择排序法 第一次写关于python的文章,说的不当之处,多多指正,我积极改正 在之前,曾写过使用java和C语言实现该两种排序法,详情见https://www.cnblogs.com/hong-fithing/p/7615907.html 搭建环境,准备工作就不冗余介绍了,网上搜罗一大堆 目录 冒泡排序法 选择排序法 冒泡排序法 冒泡类似于汽水现象,摇动一下,就有很多泡往上冒…
package com.zx; import java.util.*; import java.util.function.*; import java.util.stream.Collectors; import java.util.stream.Stream; /** * lambdaTest类 * * @author ning * @create 2018-06-11 17:19 **/ public class LambdaTest { public static void main(S…
在一个不重复的数组中,统计有多少组两个元素相加得0. 这里使用三种方式实现,并统计他们各自花费的时间: import java.util.Arrays; import java.util.HashMap; import java.util.Random; public class TwoSum { private static int N = 100000; private static int[] a = new int[N]; private static Random random = n…
前言:周末闲来无事,看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家.什么字符串在算法中有多重要之类的大路边上的客套话就不多说了,直接上笔记吧. 一.字符串 java:String内置类型,不可更改.(如需更改可考虑:StringBuffer, StringBuilder,char[]等) 二.归类 字符串涉及到的相关题型通常会是以下几个方面: 概念理解:字典序 简单操作:插入删除字符.旋转 规则判断(罗马数字转换 是否是合法的整数.…
1.String package cn.itcast_01;   /* * Scanner:用于接收键盘录入数据. * * 前面的时候: * A:导包 * B:创建对象 * C:调用方法 * * System类下有一个静态的字段: * public static final InputStream in; 标准的输入流,对应着键盘录入. * * InputStream is = System.in; //静态的类成员变量in system类直接调用 * * class Demo { * publ…
package com.xxx.xxx.dao; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.DriverManager; imp…
Remove Repeat 一.去重原理 1.进行排序 2.判断是否满足 '两个字符串相同' 的条件,相同则累加重复次数,并使用continue继续下一次循环 3.当条件不满足时,将该字符串和累计数加入数组中,并重置累计值. 二.源码 1.很久之前写的,我就不多说了. import java.util.ArrayList; import java.util.List; //一个去重的算法,写的有点复杂,没有优化过 public class RemoveRepeat { public static…
问题: StringBuffer中有delete.setLength两个方法可以快速清空字符数组.哪个效率高呢? 结论:从清空字符串角度看,两者效率都很高,比较来看,setLength效率更高. 分析如下: 这两个函数都是继承自AbstractStringBuilder类.函数原型如下: public AbstractStringBuilder delete(int start, int end) : public void setLength(int newLength) : delete(i…
Serializable(接口): 是一个IO的序列化接口,实现了这个接口,就代表这个类可以序列化或者反序列化,该接口没有方法或者字段,仅用于标识可串行话的语义. Appendable(接口): /** * An object to which <tt>char</tt> sequences and values can be appended. The * <tt>Appendable</tt> interface must be implemented…
public class Radix_sort { public static void sort(int[] arrays,int radix){ int n = 1; int length = arrays.length; int[][] bucket = new int[10][length]; //保存根据元素某个位数上的数字的分组结果 int[] count=new int[length]; //用来存储每个数字的个数 int flag = 0; //判断排序是否结束 Arrays.f…
贪心算法 贪心算法:只顾眼前的苟且. 即在对问题求解时,总是做出在当前看来是最好的选择 如买苹果,专挑最大的买. 最优装载问题--加勒比海盗 货物重量:Wi={4,10,7,11,3,5,14,2} 海盗船载重:C 求如何拿货件数最多 package bb; import java.util.Arrays; public class 最优装载 { static int[] W = { 4, 10, 7, 11, 3, 5, 14, 2 }; static int C = 30; // 开发效率:…
一.数组概念(最简单的数据结构) 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成. 其中每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 二.数组声明创建 首先必须声明数组变量,才能在程序中使用数组.语法: 变量类型[] 变量名; //首选的方法 变量类型 变量名[]; //效果相同,但不是首选 Java 使用 new 操作符来创建数组.语法: 数据类型[] 变量名 = new 数据类型[数组大小]; 数组的元素是通过索引访问…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:模拟过程 方法二:求和-n*最小值 方法三:排序 日期 [LeetCode] 题目地址:https://leetcode.com/problems/minimum-moves-to-equal-array-elements/ Difficulty: Easy 题目描述 Given a non-empty integer array of si…
文档首页 英文版文档 本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可. Node.js v0.10.18 手册 & 文档 索引 | 在单一页面中浏览 | JSON格式 目录 关于本文档 稳定度 JSON 输出 概述 全局对象 global process console 类: Buffer require() require.resolve() require.cache require.extensions __filename __dirname module e…
题目链接  Count Arrays 题意  给定$n$和$m$个区间.若一个长度为$n$的$01$序列满足对于每一个给定的区间中至少有一个位置是$0$, 那么这个$01$序列满足条件.求有多少满足条件的$01$序列. 设$f[i]$为考虑到第$i$位的时候,有多少满足条件的$01$序列. 则转移方程为$f[i] = ∑f[j]  (j < i)$,意义为当$f[j]$转移给了$f[i]$时,相当于贡献了$[j+1,i-1]$这段区间都为$1$的方案数. 于是按照题目给定的区间预处理出每个数的转…