LeetCode题解(十二)1100-1199

文章介绍了编程中的两个技术问题:如何将IPv4地址中的点替换为方括号,以及如何对数组进行相对排序。同时提及了Android学习路线,强调了深入理解基础API、源码分析、架构设计和相关技术的重要性。
摘要由CSDN通过智能技术生成

The given address is a valid IPv4 address.

[Answer]

Runtime: 2 ms, faster than 100.00% of Java online submissions for Defanging an IP Address.

Memory Usage: 34.3 MB, less than 100.00% of Java online submissions for Defanging an IP Address.

class Solution {

public String defangIPaddr(String address) {

return address.replace(“.”, “[.]”);

}

}

1122. Relative Sort Array

[Description]

Given two arrays arr1 and arr2, the elements of arr2 are distinct, and all elements in arr2 are also in arr1.

Sort the elements of arr1 such that the relative ordering of items in arr1 are the same as in arr2. Elements that don’t appear in arr2 should be placed at the end of arr1 in ascending order.

Example 1:

Input: arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]

Output: [2,2,2,1,4,3,3,9,6,7,19]

Constraints:

arr1.length, arr2.length <= 1000

0 <= arr1[i], arr2[i] <= 1000

Each arr2[i] is distinct.

Each arr2[i] is in arr1.

[Answer]

Runtime: 1 ms, faster than 79.59% of Java online submissions for Relative Sort Array.

Memory Usage: 36.4 MB, less than 100.00% of Java online submissions for Relative Sort Array.

class Solution {

public int[] relativeSortArray(int[] arr1, int[] arr2) {

int size1 = arr1.length;

int size2 = arr2.length;

int[] result = new int[size1];

int index = 0;

for (int i = 0; i < size2; i++) {

for (int j = 0; j < size1; j++) {

if (arr1[j] == arr2[i]) {

result[index] = arr2[i];

arr1[j] = -1;

index++;

}

}

}

Arrays.sort(arr1);

for (int j = 0; j < size1; j++) {

if (arr1[j] != -1) {

result[index] = arr1[j];

index++;

}

}

return result;

}

}

1185. Day of the Week

Runtime: 0 ms, faster than 100.00% of Java online submissions for Day of the Week.

Memory Usage: 33.7 MB, less than 100.00% of Java online submissions for Day of the Week.

class Solution {

public String dayOfTheWeek(int day, int month, int year) {

String[] days = new String[]{“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”};

int[] daysOfMonth = new int[] {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};

int base = 5 + day + daysOfMonth[month-1] +

最后说一下我的学习路线

其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:

  1. 架构师筑基必备技能
  2. Android框架体系架构(高级UI+FrameWork源码)
  3. 360°Androidapp全方位性能调优
  4. 设计思想解读开源框架
  5. NDK模块开发
  6. 移动架构师专题项目实战环节
  7. 移动架构师不可不学习微信小程序
  8. 混合开发的flutter

Android学习的资料

我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。

330页PDF Android学习核心笔记(内含上面8大板块)

Android学习的系统对应视频

总结

我希望通过我自己的学习方法来帮助大家去提升技术:

  • 1、多看书、看源码和做项目,平时多种总结

  • 2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理

  • 3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习

  • 4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!

希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!

希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值