[学习报告]《LeetCode零基础指南》(第五讲) 指针(2)

=========================================================================================

class Solution {

public int[] getConcatenation(int[] nums) {

//在n和2n分别弄两个索引进行拷贝就可以了

int n=nums.length;

int arr[]=new int [2*n];

int j=0;

for(int i=0;i<2*n;i++){

if(i<n){

arr[i]=nums[i];

}else{

arr[i]=nums[j];

j++;

}

}

return arr;

}

}

第三题:1920. 基于排列构建数组

=======================================================================================================

这题按照题目的意思就可以了

class Solution {

public int[] buildArray(int[] nums) {

int n= nums.length;

int []arr=new int[n];

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

arr[i]=nums[nums[i]];

}

return arr;

}

}

第四题:1480. 一维数组的动态和

==================================================================================================

第一想法就是创建一个方法实现前几项的和。

class Solution {

public int[] runningSum(int[] nums) {

int count=0;

int n=nums.length;

int arr[]=new int[n];

for(int i=0;i<nums.length;i++){

count=soul(nums,i+1);

arr[i]=count;

}

return arr;

}

public static int soul(int nums[],int n){

int sum=0;

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

sum+=nums[i];

}

return sum;

}

}

第五题:剑指 Offer 58 - II. 左旋转字符串

=============================================================================================================================

这题参考了一下评论区的想法

class Solution {

public String reverseLeftWords(String s, int n) {

StringBuilder sb=new StringBuilder();

for(int i=n;i<s.length();i++){

sb.append(s.charAt(i));//从n开始得到每个字符

}

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

sb.append(s.charAt(i));//将第一个到n依次加到之前的后面

}

return sb.toString();//转为字符串后返回

}

}

第六题:1108. IP 地址无效化

==================================================================================================

class Solution {

public String defangIPaddr(String address) {

StringBuilder sb=new StringBuilder();

for(int i=0;i<address.length();i++){

if(address.charAt(i) == ‘.’){//当等于’.'时不加进去,而加"[.]"这样就完成了替换

sb.append(“[.]”);

continue;

}

sb.append(address.charAt(i));

}

return sb.toString();

}

}

第七题:剑指 Offer 05. 替换空格

====================================================================================================

class Solution {

public String replaceSpace(String s) {

StringBuilder sb=new StringBuilder();

for(int i=0;i<s.length();i++){

if(s.charAt(i)==’ '){

sb.append(“%20”);

continue;

}

sb.append(s.charAt(i));

}

return sb.toString();

}

}

字符串替换总结:


这种字符串替换的问题,其实一个思路,先创建StringBuilder类,在一个for循环中通过

s.charAt(i)得到s字符串中的每个字符,在通过比对要换的字符,比对成就加入替换的字符

在通过此次字符暂停(continue)StingBuilder对象.append(s.charAt(i))即可.最后通过

toSting()返回即可.

第八题:1365. 有多少小于当前数字的数字

======================================================================================================================================

第一想法的老方法

class Solution {

public int[] smallerNumbersThanCurrent(int[] nums) {

int count=0;

int n=nums.length;

int arr[]=new int[n];

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

count=soul(nums,i);

arr[i]=count;

}

return arr;

}

专业技能

一般来说,面试官会根据你的简历内容去提问,但是技术基础还有需要自己去准备分类,形成自己的知识体系的。简单列一下我自己遇到的一些题

最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。

其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等

由于文章篇幅有限,仅展示部分内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值