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

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;

}

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

int sum=0;

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

if(n!=i){

if(nums[n]>nums[i]){

sum++;

}

}

}

return sum;

}

}

第九题:剑指 Offer 17. 打印从1到最大的n位数

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

class Solution {

public int[] printNumbers(int n) {

int number=1;

//几个n就弄到几位数

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

number*=10;

}

//由题可知申请number-1即可

int []arr=new int[number-1];

for(int i=0,j=1;i<number-1;i++,j++){

arr[i]=j;

}

return arr;

}

}

第十题:1389. 按既定顺序创建目标数组

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

class Solution {

public int[] createTargetArray(int[] nums, int[] index) {

//创建一个集合

ArrayList array = new ArrayList();

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

//通过集合的add方法对指定索引进行插入

array.add(index[i],nums[i]);

}

int[] target = new int[array.size()];

//遍历集合将集合中的元素插入

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

target[i] = array.get(i);

}

return target;

}

}

最后

总的来说,面试官要是考察思路就会从你实际做过的项目入手,考察你实际编码能力,就会让你在电脑敲代码,看你用什么编辑器、插件、编码习惯等。所以我们在回答面试官问题时,有一个清晰的逻辑思路,清楚知道自己在和面试官说项目说技术时的话就好了

//遍历集合将集合中的元素插入

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

target[i] = array.get(i);

}

return target;

}

}

最后

总的来说,面试官要是考察思路就会从你实际做过的项目入手,考察你实际编码能力,就会让你在电脑敲代码,看你用什么编辑器、插件、编码习惯等。所以我们在回答面试官问题时,有一个清晰的逻辑思路,清楚知道自己在和面试官说项目说技术时的话就好了

[外链图片转存中…(img-8n37a7IQ-1720773424749)]

[外链图片转存中…(img-kYbL2frz-1720773424750)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值