LEETCODE常用小知识点总结(不断更新)

一,取得十进制数字上的每一位

用当前数字与10求余数,该余数即是当前数字最低位上的数字,接下来我们将当前数字除以10,继续求它与10的余数,该数字即是次低位上的数字,重复上述过程直到当前数字为0为止。

List<Integer> list = new ArrayList<>();
// 取得x上的每一位
while(x>0){
    list.add(x%10);
    x/=10;
}

二, 判断回文

判断一个字符串是否是回文我们通常采用剥洋葱的方式,从最外层向内比较,解题时可以定义左右两个指针,初始时左指针指向下标0,右指针指向字符串末尾位,如果当前俩指针指向的值不一致,直接返回false。反之,左指针加一,右指针减一,向内移动一层继续比较,重复此过程直到左指针不再小于右指针为止。

public boolean isPalindrome(String s) {
    // 定义左右指针
    int left=0,right=list.size()-1;
    while(left<right){
        // 左右指针指向的数字不同时,返回false
        if(s.charAt(left) != s.charAt(right)){
            return false;
        }
        left++;
        right--;
    }
    return true;
}

三,不使用额外变量交换两个数字或字符的值

继续阅读
发表在 leetcode | 标签为 , , , , , , | 2条评论

LEETCODE刷题心得-你必须掌握的4类必考题型

前(fei)言(hua):

大约在一年前左右,我第一次打开leetcode的网站。在那之前,我从未想过要进行算法编程方面的学习。作为一名骨灰级AndroidApp程序猿,平时的工作与底层算法毫无干系。我们关心的内容大多是,AndroidOS推出哪些新鲜的功能?Animation又增加了什么绚丽的效果?最近又在流行什么框架?。。。什么?你问我是否关心代码执行效率?对不起,那不是硬件该去解决的问题吗?将你的内存,CPU,GPU,显卡,屏幕再加上手机壳,手机链统统升级一圈,你会发现我的程序速度将得到大幅改善。

算法的重要性

继续阅读
发表在 leetcode | 标签为 , , | 一条评论

LEETCODE 1491. Average Salary Excluding the Minimum and Maximum Salary 解题思路分析

题目大意:

去掉最低工资和最高工资后的工资平均值

给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资。

请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 1492. The kth Factor of n 解题思路分析

题目大意:

n 的第 k 个因子

给你两个正整数 n 和 k 。

如果正整数 i 满足 n % i == 0 ,那么我们就说正整数 i 是整数 n 的因子。

考虑整数 n 的所有因子,将它们 升序排列 。请你返回第 k 个因子。如果 n 的因子数少于 k ,请你返回 -1 。

继续阅读
发表在 leetcode | 标签为 , , | 留下评论

LEETCODE 1493. Longest Subarray of 1’s After Deleting One Element 解题思路分析

题目大意:

删掉一个元素以后全为 1 的最长子数组

给你一个二进制数组 nums ,你需要从中删掉一个元素。

请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。

如果不存在这样的子数组,请返回 0 。

继续阅读
发表在 leetcode | 标签为 , , , , | 留下评论

LEETCODE 1499. Max Value of Equation 解题思路分析

题目大意:

满足不等式的最大值

给你一个数组 points 和一个整数 k 。数组中每个元素都表示二维平面上的点的坐标,并按照横坐标 x 的值从小到大排序。也就是说 points[i] = [xi, yi] ,并且在 1 <= i < j <= points.length 的前提下, xi < xj 总成立。

请你找出 yi + yj + |xi – xj| 的 最大值,其中 |xi – xj| <= k 且 1 <= i < j <= points.length。

题目测试数据保证至少存在一对能够满足 |xi – xj| <= k 的点。

继续阅读
发表在 leetcode | 标签为 , , , , | 留下评论

Android编程-Android秀翻天的操作——使用协程进行网络请求

继续阅读

发表在 Android | 留下评论

Android编程-一个Android程序至少包含几个线程?

继续阅读

发表在 Android | 留下评论

Android编程-FastJson是如何导致App Crash的

继续阅读

发表在 Android | 留下评论

Android编程-APK反编译步骤

继续阅读

发表在 Android | 留下评论

Android编程-项目中用到的gradle分sdk的实例

继续阅读

发表在 Android | 留下评论

Android编程-MVVM陷阱之DataBinding(数据绑定库)

继续阅读

发表在 Android | 留下评论