暂时未有相关云产品技术能力~
Java小包子
请谈谈你对JVM的理解? java8虚拟机和之前的变化更新? - 什么是OOM,什么是栈溢出StackOverFlowError? 怎么分析? - JVM的常用调优参数有哪些? - 内存快照如何抓取,怎么分析Dump文件? - 谈谈JVM中,类加载器你的认识
时间复杂度:两层 for 循环,再加上比较字符串,如果字符串最长为 K,总的时间复杂度就是 O(n²K)。 空间复杂度:O(NK),用来存储结果。 解法一算是比较通用的解法,不管字符串里边是大写字母,小写字母,数字,都可以用这个算法解决。这道题的话,题目告诉我们字符串中只有小写字母,针对这个限制,我们可以再用一些针对性强的算法。 下边的算法本质是,我们只要把一类的字符串用某一种方法唯一的映射到同一个位置就可以。
如上图,利用循环变量 i ,依次后移,判断每个子串是否符合即可。 怎么判断子串是否符合?这也是这个题的难点了,由于子串包含的单词顺序并不需要固定,如果是两个单词 A,B,我们只需要判断子串是否是 AB 或者 BA 即可。如果是三个单词 A,B,C 也还好,只需要判断子串是否是 ABC,或者 ACB,BAC,BCA,CAB,CBA 就可以了,但如果更多单词呢?那就崩溃了。 链接)的作者提出了,用两个 HashMap 来解决。首先,我们把所有的单词存到 HashMap 里,key 直接存单词,value 存单词出现的个数(因为给出的单词可能会有重复的,所以可能是 1 或 2 或者其他)。然后扫描子
上边的解法,我们是如果不等于 val 就赋值。但如果按题目的想法,应该是如果等于 val 就移除。我们从正方面去想,也就是等于 val 的话,我们怎么体现移除呢? 题目中有个说明我们没利用到,他告诉我们说 the order of those five elements can be arbitrary,就是说数组的顺序可以随便换,我们怎么充分利用呢? 我们可以这样,如果当前元素等于 val 了,我们就把它扔掉,然后将最后一个值赋值到当前位置,并且长度减去 1。什么意思呢? 比如 1 2 2 4 6,如果 val 等于 2 。那么当移动到 2 的时候,等于 val 了。我们就把最后一个位置的
参考了这里-Java-solution) 主要思想是,遍历数组,用 0 减去当前的数,作为 sum ,然后再找两个数使得和为 sum。 这样看来遍历需要 O(n),再找两个数需要 O(n²)的复杂度,还是需要 O(n³)。 巧妙之处在于怎么找另外两个数。 最最优美的地方就是,首先将给定的 num 排序。 这样我们就可以用两个指针,一个指向头,一个指向尾,去找这两个数字,这样的话,找另外两个数时间复杂度就会从 O(n²),降到 O(n)。 而怎么保证不加入重复的 list 呢? 要记得我们的 nums 已经有序了,所以只需要找到一组之后,当前指针要移到和当前元素不同的地方。其次在遍
在第 7 道题我们写了倒置 int 的算法,这里当然可以用到了,只需要判断倒置前后相不相等就可以了。 记不记得,当倒置后的数字超出 int 的范围时,我们返回的是 0 ,那么它一定不等于原数,此时一定返回 false 了,这正不正确呢? 我们只需证明,如果倒置后超出 int 的范围,那么它一定不是回文数字就好了。 反证法,我们假设存在这么一个数,倒置后是超出 int 范围的,并且它是回文数字。 int 最大为 2147483647 ,
将一个字符串转为整型。 这道题,难度其实不大,和上道题有很多重合的地方。整体的思路就是遍历字符串,然后依次取出一个字符就可以了。无非是考虑一些特殊情况,还有就是理解题目意思。 经过多次试错,题目的意思是这样的。 从左遍历字符串,可以遇到空格,直到遇到 ' + ' 或者数字或者 ' - ' 就表示要转换的数字开始,如果之后遇到除了数字的其他字符(包括空格)就结束遍历,输出结果,不管后边有没有数字了,例如 " - 32332ada2323" 就输出 "- 32332"。 如果遇到空格或者 ' + ' 或者数字或者 ' - ' 之前遇到了其他字符,就直接输出 0 ,例如 " we1332"。
就目前来说,大部分企业已经实现云服务。但就学习者来说,云服务国内常见的厂商华为云、腾讯云、阿里云、新浪云等等各种云都是需要收费的,尽管某些厂商提供免费试用产品,可到期就要付费!你能想象,刚用舒爽,给你来个“对不起,体验服务已到期,请续费!”。白嫖者的噩耗啊 所以我们的VMware就给咱提供了一个相对舒爽的学习环境(咱用VMware station player,更全面的pro违背了互联网的核心宗旨!对了win10专业版是拥有Hyper-V,有兴趣的同学可以尝试一下啊),同学们在实际的操作中习惯使用xshell、putty这种远程链接工具,通过保存服务配置,但是咱虚拟机的IP是动态分配的,一不
此方法返回这个字符串的指定索引处的char值。第一个char值的索引为0. 5.异常 IndexOutOfBoundsException -- 如果index参数为负或不小于该字符串的长度. 6.实例
我们可以看到,图形其实是有周期的,0,1,2 ... 7 总过 8 个,然后就又开始重复相同的路径。周期的计算就是 cycleLen = 2 × numRows - 2 = 2 × 5 - 2 = 8 个。 我们发现第 0 行和最后一行一个周期内有一个字符,所以第一个字符下标是 0 ,第二个字符下标是 0 + cycleLen = 8,第三个字符下标是 8 + cycleLen = 16 。 其他行都是两个字符。 第 1 个字符和第 0 行的规律是一样的。 第 2 个字符其实就是下一个周期的第 0 行的下标减去当前行。什么意思呢? 我们求一下第 1 行第 1 个周期内的第 2 个字符
遗憾的是上边的算法没有通过 leetCode,时间复杂度太大,造成了超时。我们怎么来优化一下呢? 上边的算法中,我们假设当 i 取 0 的时候, j 取 1,判断字符串 str[0,1) 中有没有重复的字符。 j 取 2,判断字符串 str[0,2) 中有没有重复的字符。 j 取 3,判断字符串 str[0,3) 中有没有重复的字符。 j 取 4,判断字符串 str[0,4) 中有没有重复的字符。 做了很多重复的工作,因为如果 str[0,3) 中没有重复的字符,我们不需要再判断整个字符串 str[0,4) 中有没有重复的字符,而只需要判断 str[3] 在不在 str[0,3)
链表的优点和缺点: 优点:因为链表上的元素在空间存储上内存地址不连续,所以随机增删元素的时候不会有大量元素位移,因此随机增删效率高。在以后的开发中如果有大量的增删集合中的元素时,建议使用LinkedList 缺点:不能通过数学表达式的计算查找元素的内存地址,每一次查找都是从头开始遍历,所以LinkedList的查找效率比较低。
虚拟化技术是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。由此,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些电脑硬件资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理配置所限制。一般所指的虚拟化资源包括计算能力和数据存储。
在win10 系统中的虚机软件VMware Workstation中安装CentOS7,安装过程中没有设置网络,等安装完后才设置的(其实这个没有影响)。后来发现死活都是“有线线缆被拔出”。 解决问题的道路是艰辛的,特别是linux系统的问题。 1.确认你win10系统打开了这两个服务:VMware DHCP Service和VMware NAT Service
使用注解的优势: 1.采用纯java代码,不在需要配置繁杂的xml文件 2.在配置中也可享受面向对象带来的好处 3.类型安全对重构可以提供良好的支持 4.减少复杂配置文件的同时亦能享受到springIoC容器提供的功能 @SpringBootApplication 一般不会主动去使用它,但是要知道它是一个组合注解,@Configuration 、@EnableAutoConfiguration 、@ComponentScan 注解的集合 @SpringBootApplication:申明让spring boot自动给程序进行必要的配置,这个
Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的Lambda ,给我们操作集合(Collection)提供了极大的便利。Stream流是JDK8新增的成员,允许以声明性方式处理数据集合,可以把Stream流看作是遍历数据集合的一个高级迭代器。Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找/筛选/过滤、排序、聚合和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供