实习准备(1)

**

3.26

**
一、关于java随机数
算法机试的时候可以使用Random吗
import java.util.Random;
rnd.nextInt(22)+5 设置随机数的范围在5到26之间
rnd.nextInt(max-min)+min 设置随机数的范围在min到max之间
Math.random()*(n-m)+m

二、关于去除数组中重复的数
利用Hashset去除重复的数

三、各类排序算法
分治法、快排法

四、分治法复习(分治法与递归思想)分治法天然与递归结合在一起
小和问题、分治法排序、逆序对问题

递归:边界条件+递归方程
(阶乘、裴波那契数列)
遍历的时候传参数(一个数的时候、一个数组的时候(传入数组名,数组的起始和终点))

五、回溯法

六、关于java设置全局变量
可以使用static设置

七、动态规划问题

八、复习一下java的字符串操作函数
split函数//split 函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回;
数组的length属性与字符串求长度length()方法有本质区别

将一个字符串中只有一个字符,可以通过charAt获取指定的字符,有char就返回char

toUpper()函数
‘A’ = ‘a’ - 32?

    char ch = 'a';
    char ch1 = (char) (ch - 32);

**

3.27

**
Java字符串之练习

charAt() 参数、返回值类型,判断回文数
indexOf() 指定从哪个字符开始以后
length()
startsWith()
endsWith()
substring()
toUpperCase()
toLowerCase()
trim()
String.valueOf(int/float/char) //将其他类型转换为字符串类型
split(String regex)
concat()

字符串类型与其他类型互转
parseInt parseDouble

字符串与字符转换
字符转为字符串 String.valueOf
字符串转为字符 toCharArray(先转为字符数组,在取得第一个元素) charAt(直接获取第一个字符)

正则表达式
replace函数 用(oldchar,newchar)
replaceAll(regex, replacement)
去除字符串中的字母或者数字
\w,与[a-zA-Z0-9_]等价
[0-9]
[a-zA-Z]

新建一个字符串数组,不赋初值,那么每个字符串都为null
新建一个字符串,不赋初值,那么每个字符串为空字符串
新建一个整形数组,不赋初值,那么每个变量为0

Scanner类中没有定义读取char的方法,所以只能先读取string然后再转化为char。具体方法next().charAt(0)。
java读取一个二维字符数组
char[][] chs = new char[13][13];
for(int i = 0;i < chs.length; i++) {
chs[i] = sc.next().toCharArray();
}

布尔数组的默认值是false

回溯法(回溯法与深度优先搜索策略)
求全排列
李白打酒

枚举法:有序的去尝试每一种可能
一些写算法的思想:
想一直做某个动作时,可以想到while,while判断条件填终止程序的条件

常见字符的ascii码

**

3.28

**
一、统计一个字符串中每个字符出现的次数
StringBuffer可以通过toString方法转换成String
将字符的数字转为数字 ch-‘0’

小贴士: 字符的ASCII码
space 32
0 48
9 57
A 65
Z 90
a 97
z 122

space 到 z 的范围为122

0 到 z 的范围为 122

数据结构:HashMap,键值对的形式
import java.util.HashMap
put(key,value)放入键和值
get(key) 通过key获得值

如何遍历map获得key、value
通过entrySet可以直接将key和value取出

list是有序集合,set是无序集合,所以list可以用sort方法排序

二、从文件读入字符

三、今日写递归
注意递归的判断结束条件的顺序
注意结束时的return,否则可能会有数组越界的可能(检查:可以通过打印step的值分析越界的情况)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值