首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2023-06-02:给定一个二进制数组 nums 和一个整数 k, k位翻转 就是从 nums 中选择一个长度为 k 的 子数组, 同时把子数组中的每一个 0

2023-06-02:给定一个二进制数组 nums 和一个整数 k,k位翻转 就是从 nums 中选择一个长度为 k 的 子数组,同时把子数组中的每一个 0 都改成 1 ,把子数组中的每一个 1 都改成...3.循环遍历数组 nums 中的每个元素 num:如果队列 queue 中存在元素,并且当前元素下标减去队列左端点下标等于 k,则说明队列中的第一个元素已经过期,将左端点右移一位。...如果队列 queue 中的元素个数为奇数,并且当前元素与队列最后一个元素不同,则将当前元素下标加入队列尾部,同时将翻转次数 ans 加 1。...4.如果队列 queue 长度大于 0 且队列最后一个元素下标加 k 大于数组长度,则返回 -1 表示无法完成翻转;否则,返回翻转次数 ans。...空间复杂度也是 $O(n)$,因为需要使用一个大小为 $n$ 的队列来存储需要翻转的子数组的下标。同时,由于只保存了子数组的起始下标,因此空间复杂度不会超过 $n$。

51420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    字符串相关知识集锦

    3.分割合并 explode — 使用一个字符串分割另一个字符串,第一个参数是分割符号,第二参数是字符串 implode –用第一个参数链接数组中的元素 str_split — 将字符串转换为数组...,默认是一个字符一个,第二个参数是每个数组长度 join — 别名 implode() 4.大小写转换 lcfirst() 首字母小写 ucfirst() – 将字符串的首字母转换为大写 strtolower...— 使用另一个字符串填充字符串为指定长度,第一个是字符串,第二个要填充长度(这个是总长),第三个是填充内容 str_repeat — 重复一个字符串,第一个参数是要重复的字符串,第二个参数是重复次数...) strrchr — 查找指定字符在字符串中的最后一次出现 不常见到的各种 addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符 bin2hex — 将二进制数据转换成十六进制表示...— 替换字符串的子串 ucfirst — 将字符串的首字母转换为大写 ucwords — 将字符串中每个单词的首字母转换为大写

    91870

    【黄啊码】php函数大全,新手必备神器

    natcasesort();//不区分大小写的排序, 当遇到字符完全一样,按照数字排 eg: FILE1,FILE2, 这两个字符相同,再按照数字...】 6.数组的数据结构 【2.无返回值,传值引用,就直接对原数组进行了修改】 1.array_shift($arr)//从开头,删除数组第一个元素 2.array_unshift...($str[,0/1/2]); //返回$str中 单词的数量[0指返回次数,默认值/1指以数组形式返回单词值/2指返回关联数组,k为单词首字母下标,v单词值]...1. preg_match($pattern,$subject,$arr);//按正则$pattern处理$subject ,第一次匹配结果返回到数组中【函数的返回值为匹配次数...】 2.preg_match_all($pattern,$subject,$arr)//按正则$pattern处理$subject,全部匹配结果返回到数组中【函数的返回值为匹配次数

    79520

    Java基础入门教程-基础语法

    强制转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量 格式:目标数据类型 变量名 = (目标数据类型)值或者变量; int a = 10; //int 4字节 byte b...相似 case穿透 现象:当开始case穿透,后续的case就不会具有匹配的效果,内部的语句都会执行。...快排 冒泡排序算法中,一次循环结束,就相当于确定了当前的最大值,也能确定最大值在数组中应存入的位置。 快速排序算法中,每一次递归时以第一个数为基准数,找到数组中所有比基准数小的。...当传入基本数据类型时,传入的是具体的数值,且方法中的变量和main中的变量并无联系 当传入引用类型时,传入的是具体的内存地址,这种情况可以在方法中改变引用类型变量的值 案例 // 需求:设计一个方法用于数组遍历...0开头 十六进制:数值前面以0x开头,x大小写都可 注意:书写的时候,虽然加入了进制的标识,但打印在控制台展示的时候都是十进制数据 进制转换 任意进制到十进制公式:系数*基数的权次幂 相加 系数:每一

    90830

    Java面试集合(四)

    标识符 标识符规则:可以使用字母,数字,_ ,以及美元符号 $,在Java中可以使用中文命名,但建议不用使用,不能使用关键字,也不能以数组开头,注意区分大小写,要见名知意 5....驼峰命名法 类名和接口名,如果有多个单词组成,那么每个单词的首字母要进行大写,如HelloWorld 变量名和方法名,如果有多个单词组成,那么第一个单词的首字母要小写,其余的单词开头的首字母要大写,如...字面量 字面量:指的是在计算机中不可变的值 1.整数常量(所有的整数) 2.小数常量(所有的小数) 3.字符常量(将一个字母、数字、符号,用 ‘’ 标识起来) 4.字符串常量(将一个或者多个字符用...,其他往前转换,可能产生精度损失 转换 // short char // ok 可行 字面量如果在范围内允许转化 short a = ‘b’; char c = 97; // not 不可行 可能超过范围...数组 格式: 数据类型[] 数组名 = new 数据类型[长度]; 数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素3...}; int[] arr = new int[]

    1.3K20

    JavaScript String高阶用法

    长度以字符为单位,该属性为只读属性。 下面代码使用字符串的 length 属性获取字符串的长度。...var a = s.match(/c/); //返回数组[h] 如果没有找到匹配字符,则返回 null,而不是空数组。 当不执行全局匹配时,如果匹配模式包含子表达式,则返回子表达式匹配的信息。...考虑到扩展名的长度不固定,省略第二个参数会更灵活。...,当匹配时会调用该函数,函数的返回值将作为替换文本使用,同时函数可以接收以$为前缀的特殊字符,用来引用匹配文本的相关信息。...$’(美元符号+单引号) 位于匹配字符串右侧的文本 $$ 表示 $ 字符串 示例1 下面代码把字符串中每个单词转换为首字母大写形式显示。

    20120

    JAVA入门1 原

    目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了 ?...执行过程:当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default...注意哦: 1、 方法体放在一对大括号中,实现特定的操作 2、 方法名主要在调用这个方法时使用,需要注意命名的规范,一般采用第一个单词首字母小写,其它单词首字母大写的形式 第二步,调用方法 当需要调用方法执行某个操作时...3、 方法的参数可以是基本数据类型,如 int、double 等,也可以是引用数据类型,如 String、数组等 ? 4、 当方法参数有多个时,多个参数间以逗号分隔 ?...(nums)); } /* * 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值 * 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组

    2.6K20

    PHP常用函数总结

    count(); //获取变量中的字符串值,可以理解为把变量转换成字符串类型 strval(); //查询数组里是否存在着指定的健名,返回true和false array_key_exists(键名...(); //往数组尾部插入一个或多个元素 //返回新数组 array_push($a, "要插入的元素", "要插入的元素"); //把变量类型转换为字符串类型 //返回该字符串 strval();...语句); //返回结果集的中行的数量,可理解为返回结果集的长度 mysqli_num_rows(); //从结果集中获取一条数据,并作为数组返回 mysqli_fetch_row(); //以切割符为断点切割字符串...,组成数组并返回, //数组的数目也就是长度 //大于0,返回相对数值的数组,如1,返回的数组只有一个元素, 0也返回只有一个元素的数组 //小于0,从数组尾部开始,去除 (-x) 的绝对值个元素,返回...[2] => 2 [3] => 3 ... [100] => 100 ); //首字母转换为大写 ucwords(); //返回当前内存消耗量 memory_get_usage(); //获取一个数组的全部键名

    3.8K20

    JAVA学习笔记(一)

    方法(函数): 注意: 1)方法不能定义在另一个方法里 2)方法可以调用另一个方法 3)方法没有返回值就不用写return 方法的声明要写void ,有就写return 4)方法不调用不执行 方法命名规则...:如果是一个单词要全部小写,如果是二个单词,第二个单词首字母大写 什么是重载:在同一个类中,如果方法名相同,参数的类型及参数的个数不同即可,注意与返回值无关。...-1: 因为是二二比较,比较的次数比数组长度要小1 for(int j=0;j就不用比较了...(源数组名,源数组起始位置,目标数组,目标数组插入位置,要拷贝的长度) 没返回值 注意:如:源数组里有6个,我们要拷贝出7个到目标数组,就会数组下标越界异常。...1.当参数名和全局变量相同时,在赋值时用this!!!!!!

    38320

    常用的Java工具,16个

    字符等写入输出流 toInputStream:把字符转换为输入流 readLines:从输入流中读取多行数据,返回List copyLarge:同copy,支持2GB以上数据的复制...replace:替换字符串 四. org.apache.http.util.EntityUtils toString:把Entity转换为字符串 consume:确保Entity中的内容全部被消费...>)中的一个 七. org.springframework.util.StringUtils hasText:检查字符串中是否包含文本 hasLength:检测字符串是否长度大于0 isEmpty...:设置对象属性值 populate:根据Map给属性复制 copyPeoperty:复制单个值,从一个对象到另一个对象 cloneBean:克隆bean实例 现在你只要了解了以上16种最流行的工具类方法...,你就不必要再自己写工具类了,不必重复造轮子。

    1.3K10

    Go有哪些特殊的语言特性?

    因此,汉字求长度的方法应该这样做: fmt.Println(utf8.RuneCountInString("李正龙")) 2.3数组 Go 中的数组也是一个我觉得设计的有点过于底层的概念了。...基础的用法和 C#是相同的,但是细节区别还是很大的。 首先,Go 的数组也是一个值类型,除此之外,由于”严格地“遵循了数组是一段连续的内存的结合这个概念,数组的长度是数组的一部分。...这个概念也很重要,因为这是直接区别于切片的一个特征。而且,Go 中的数组的长度只能是一个常量。...其底层也是一个数组,只不过它对数组进行了一些封装,加入了两个指针分别指向数组的左右边界,就使得 Slice 有了可以增加数据的功能。...可以看到切片和数组的唯一区别就是没有了数组定义中的数量 可以基于一个去切片去创建另一个切片,其后面的数字的含义就是目前业界通用的左包含右封闭 可以通过**make()**函数创建一个切片 make()函数感觉可以伴随

    19210

    干货:排名前 16 的 Java 工具类!

    . org.apache.http.util.EntityUtils toString:把Entity转换为字符串 consume:确保Entity中的内容全部被消费。...:是否空数组 add:向数组添加元素 subarray:截取数组 indexOf:查找某个元素的下标 isEquals:比较数组是否相等 toObject:基础类型数据数组转换为对应的Object数组...clone:克隆一个数组 isEmpty:是否空数组 add:向数组添加元素 subarray:截取数组 indexOf:查找某个元素的下标 isEquals:比较数组是否相等 toObject:基础类型数据数组转换为对应的...:设置对象属性值 populate:根据Map给属性复制 copyPeoperty:复制单个值,从一个对象到另一个对象 cloneBean:克隆bean实例 现在你只要了解了以上16种最流行的工具类方法...,你就不必要再自己写工具类了,不必重复造轮子。

    2.2K50

    推荐 16 个超级实用的 Java 工具类

    . org.apache.http.util.EntityUtils toString:把Entity转换为字符串 consume:确保Entity中的内容全部被消费。...:是否空数组 add:向数组添加元素 subarray:截取数组 indexOf:查找某个元素的下标 isEquals:比较数组是否相等 toObject:基础类型数据数组转换为对应的Object数组...clone:克隆一个数组 isEmpty:是否空数组 add:向数组添加元素 subarray:截取数组 indexOf:查找某个元素的下标 isEquals:比较数组是否相等 toObject:基础类型数据数组转换为对应的...:设置对象属性值 populate:根据Map给属性复制 copyPeoperty:复制单个值,从一个对象到另一个对象 cloneBean:克隆bean实例 现在你只要了解了以上16种最流行的工具类方法...,你就不必要再自己写工具类了,不必重复造轮子。

    1.6K30

    16 个超级实用的 Java 工具类

    . org.apache.http.util.EntityUtils toString:把Entity转换为字符串 consume:确保Entity中的内容全部被消费。...:是否空数组 add:向数组添加元素 subarray:截取数组 indexOf:查找某个元素的下标 isEquals:比较数组是否相等 toObject:基础类型数据数组转换为对应的Object数组...clone:克隆一个数组 isEmpty:是否空数组 add:向数组添加元素 subarray:截取数组 indexOf:查找某个元素的下标 isEquals:比较数组是否相等 toObject:基础类型数据数组转换为对应的...:设置对象属性值 populate:根据Map给属性复制 copyPeoperty:复制单个值,从一个对象到另一个对象 cloneBean:克隆bean实例 现在你只要了解了以上16种最流行的工具类方法...,你就不必要再自己写工具类了,不必重复造轮子。

    2K21

    c++基础之函数

    距离上次更新又过了一周,又该更新新的读书笔记了。本次更新的主要是c++中函数部分的内容 c++ 中的函数与c语言中的函数大致用法或者语法是一样的,这里就不就这点详细展开了。...需要注意的是c/c++中并没有规定函数中参数的求值顺序,所以在调用函数时需要特别注意,在传递实参的同时不要修改实参的值,也就是不要写类似func(i, ++i)这样的语句 局部对象 高级语言中,名字只是用来访问对象所在内存的一个工具...第三步是从可行函数中寻找与本次调用最匹配的函数,它的基本思想是实参类型与形参类型越接近,它们匹配的越好。...如果多个形参都与调用函数的实参较为接近且,如果有且只有一个函数同时满足下面两个条件,则匹配成功: 该函数每个实参的匹配不劣与其他可行函数需要的匹配 至少有一个实参的匹配优于其他可行函数提供的方案 如果检查了所有实参后没有任何一个函数脱颖而出...像实参添加顶层const或者从实参中删除顶层const 通过const转换实现的类型匹配 通过类型提升实现的类型匹配 通过算术类型转换或者指针转换实现的匹配 通过类类型转换实现的匹配

    57530

    16 个超级实用的 Java 工具类

    :替换字符串 四. org.apache.http.util.EntityUtils toString:把Entity转换为字符串 consume:确保Entity中的内容全部被消费。...>)中的一个 七. org.springframework.util.StringUtils hasText:检查字符串中是否包含文本 hasLength:检测字符串是否长度大于0 isEmpty:...clone:克隆一个数组 isEmpty:是否空数组 add:向数组添加元素 subarray:截取数组 indexOf:查找某个元素的下标 isEquals:比较数组是否相等 toObject:基础类型数据数组转换为对应的...:设置对象属性值 populate:根据Map给属性复制 copyPeoperty:复制单个值,从一个对象到另一个对象 cloneBean:克隆bean实例 现在你只要了解了以上16种最流行的工具类方法...,你就不必要再自己写工具类了,不必重复造轮子。

    1.3K11

    Go语言——Json处理

    尽管JSON是JavaScript的一个子集,但JSON采用完全独立于编程语言的文本格式,且表现为键/值对集合的文本描述形式(类似一些编程语言中的字典结构),这使它成为较为理想的、跨平台、跨语言的数据交换语言...开发者可以用 JSON 传输简单的字符串、数字、布尔值,也可以传输一个数组,或者一个更复杂的复合结构。  在 Web 开发领域中, JSON被广泛应用于 Web 服务端程序和客户端之间的数据通信。  ...tag中如果带有"omitempty"选项,那么如果该字段值为空,就不会输出到JSON串中 如果字段类型是bool, string, int, int64等,而tag中带有",string...要将JSON解组到结构中,Unmarshal (解组) 匹配传入对象 Marshaling(编组) 处理使用的键的键(结构字段名或其标记),更喜欢精确匹配,但也接受不区分大小写的匹配。...解组到数组Array 要将JSON数组 解组 为Go数组,解组解码JSON数组元素转换为相应的Go数组元素。 如果Go数组小于JSON数组,其他JSON数组元素将被丢弃。

    2K40

    【笔记】《C++Primer》—— 第6章:函数

    ) 建议函数的声明与定义要分开来写,因为函数可以声明多次但只能定义一次,声明建议写在头文件中 形参名是可选的,但是不写形参的名字会使得我们无法在函数中使用这个形参且降低可读性,所以建议都写上形参,即使在声明中也一样...,但不好操作,普通形参不能传入常量实参,但更好操作 当函数不会修改传入的参数时,定义为常量引用是更好的习惯 函数的参数可以写为数组形式, 与写为指针形式是等价的 数组有三种常见的传参方法:用某个不会出现的元素标定数组尾...const和非const直接存在一次类型转换,当参数出现多个匹配时,会按照匹配优先级进行选择 前面出现过的const_cast类型转换在重载中非常有效,主要用于先将函数主干用const写完,然后重载一个普通版本的函数...,成为可行函数 可行函数需形参数量与实参相等(可利用默认实参)且类型符合(可转换来适应) 最后若有多个可行函数,则需要进行最佳匹配寻找,若找不到最佳匹配则报错“存在二义性” 最佳匹配实际上就是要找出有唯一一个函数...const转换;二,进行了const转换;三,进行类型提升;四,进行类型匹配(如int转double);五,进行类类型转换 类型提升通常都是提升到int及以上类型,且所有类型匹配的级别都是一样的,int

    72330

    Java高频面试题- 每日三连问?【Day11】 — 集合容器篇(三)

    另外,Hashtable 基本被淘汰,不要在代码中使用它; 对 Null key 和 Null value 的支持: HashMap 可以存储 null 的 key 和 value,但 null作为键只能有一个...底层数据结构: JDK1.8 以后的 HashMap 在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)(将链表转换成红黑树前会判断,如果当前数组的长度小于64,那么会选择先进行数组扩容,...而不是转换为红黑树)时,将链表转化为红黑树,以减少搜索时间。...重要): ① 在 JDK1.7 的时候,ConcurrentHashMap(分段锁) 对整个桶数组进行了分割分段(Segment),每一把锁只锁容器其中一部分数据,多线程访问容器里不同数据段的数据,就不会存在锁竞争...当一个线程访问同步方法时,其他线程也访问同步方法,可能会进入阻塞或轮询状态,如使用 put 添加元素,另一个线程不能使用 put 添加元素,也不能使用 get,竞争会越来越激烈效率越低。

    33220
    领券