首页 > 其他 > 详细

厚积薄发

时间:2020-05-24 19:05:02      阅读:58      评论:0      收藏:0      [点我收藏+]

位运算

  • n&(n-1) 消除 n 的二进制中 最后一个1
    • 例如,回文数(字符串) 分为奇回文和偶回文两类,通过异或运算得到结果n,判断回文数(字符串)的条件为 n==0||(n&n-1)==0

字符与ASCII值相互转换

普通字符与ASCII值的相互转换

普通字符 -> Ascii值:
	char c = ‘a‘;
	byte b =(byte)c;
或  int i = c;

Ascii值 -> 普通字符:
int d = 97 ;
char c = (char)d ;

数字字符与数字的相互转换

数字字符 -> 数字:
char c=‘1‘;
int i = c - ‘0‘;
或 int i = Integer.parseInt(c+"");
或 int i = Character.digit(c,10);

数字 -> 数字字符:
int i = 9;
char c = (char)(i+‘0‘);

数组翻转

/*
 *从下标t开始,数据都是逆序的,进行翻转 如4321->1234
 */
private void reverse(char[] chars, int t) {
        if(chars==null||chars.length==0) return;
        int len=chars.length;
        for(int i=0;i<(len-t)/2;i++){
            int m=t+i;
            int n=len-1-i;
            if(m<n){
                swap(chars, m, n);
            }
        }
    }
}

阵地攻守思想

采用阵地攻守的思想:
第一个数字作为第一个士兵,守阵地;count = 1;
遇到相同元素,count++;
遇到不相同元素,即为敌人,同归于尽,count--;当遇到count为0的情况,又以新的i值作为守阵地的士兵,继续下去,到最后还留在阵地上的士兵,有可能是主元素。
再加一次循环,记录这个士兵的个数看是否大于数组一般即可。

降升序

集合
降序
Collections.sort(list,Collections.reverseOrder())//list:8 7 6 5 4 2 1
逆序
Collections.reverse(list)//list:4 1 8 6 2 7 5

数组
降序(一定要注意调用Collections.reverseOrder()需要是Integer[],而不是int[])
Integer[] a={5 7 2 6 8 1 4}
Arrays.sort(a,Collections.reverseOrder())//a: 8 7 6 5 4 2 1

数组转成list

Arrays.asList(数组);
Listlist =new ArrayList(Arrays.asList(a));

见解

  • 宽度深度并重。宽度可以开阔视野,增加考虑问题的全面性;而深度,则是抓住一个或若干个感兴趣的点深入学习,形成日后与他人竞争的优势。

厚积薄发

原文:https://www.cnblogs.com/yh-simon/p/12952012.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!