135day(core java5.4,5.5)

《2018年2月23日》【连续1235天】

内容:core java5.4,5.5;
1.关于昨天的第三种方法,不一定要用到Map容器,根据ASCII码的性质,字符与数字间的对应关系,可用一个数组来储存字符串,

每个数组相应的位置代表一个字符,里面的元素对应在字符串中出现的位置,重复的会产生覆盖:

所以求一个字符串的无重复元素子字符串可以有如下解法:

 

public class Solution {
	    public int lengthOfLongestSubstring(String s) {
	        int n = s.length(), ans = 0;
	        int[] index = new int[128]; //ASCII码
	        for (int j = 0, i = 0; j < n; j++) {
	            i = Math.max(index[s.charAt(j)], i);
	            ans = Math.max(ans, j - i + 1);
	            index[s.charAt(j)] = j + 1; //逐个将数组填充,并且相同的元素会覆盖数组,当覆盖后,数组上的数字就是对应ASCII码的字符在
	            //字符串枚举到的最后位置;
	        }
	        return ans;
	    }
	}

2.
对于方法,它想要改变参数的值,只能将后面加Holder,而通过封装对象还是原始类型都没有;

 

3.变参:

printf的定义大致如下:

public class PrintStream
	{
		public PrintStream printf(String fmt,Object...args ) {return format(fmt,args);}
	}

其中,Object...args是java的代码,表面函数可接受任意数量的参数(除fmt参数);

 

其内部其实是一个格式化字符串加一个Object[ ];

而Object[ ]包含了其他参数,(当数组里有基本类型时,它们会被自动封装成对象);


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值