Last Position of Target

2024-09-04 15:08
文章标签 position target last

本文主要是介绍Last Position of Target,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Find the last position of a target number in a sorted array. Return -1 if target does not exist.

Example

Example 1:

Input: nums = [1,2,2,4,5,5], target = 2
Output: 2

Example 2:

Input: nums = [1,2,2,4,5,5], target = 6
Output: -1

思路1:用recursion写,自己写出来的,开心。

public class Solution {/*** @param nums: An integer array sorted in ascending order* @param target: An integer* @return: An integer*/public int lastPosition(int[] nums, int target) {if(nums == null || nums.length == 0) return -1;int start = 0; int end = nums.length-1;return findLastIndex(nums, start, end, target);}public int findLastIndex(int[] nums, int start, int end, int target) {if(start > end) {return -1;}int mid = start +(end-start) / 2;if(nums[mid] == target){if(mid == nums.length-1) return mid;if(nums[mid] != nums[mid+1]){return mid;} return findLastIndex(nums, mid+1, end, target);} else if(nums[mid] < target) {return findLastIndex(nums, mid+1, end, target);} else { // nums[mid] > target;return findLastIndex(nums, start, mid-1, target);}}
}

思路2: 用while循环写,按照九章的模板来写。

public class Solution {/*** @param nums: An integer array sorted in ascending order* @param target: An integer* @return: An integer*/public int lastPosition(int[] nums, int target) {if(nums == null || nums.length == 0) {return -1;}int start = 0; int end = nums.length -1;while(start + 1 < end) {int mid = start + (end - start) / 2;if(nums[mid] <= target) {start = mid;} else {// nums[mid] > target;end = mid;}}if(nums[end] == target){return end;}if(nums[start] == target){return start;}return -1;}
}

 

这篇关于Last Position of Target的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136304

相关文章

Linux内置的审计跟踪工具:last命令

如果你是一个服务器管理员,你或许知道你要保护你的服务器的话,不仅是从外部,还要从内部保护。Linux有一个内置工具来看到最后登陆服务器的用户,可以帮助你保护服务器。   这个命令是last。它对于追踪非常有用。让我们来看一下last可以为你做些什么。   last命令的功能是什么   last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制

访问controller404:The origin server did not find a current representation for the target resource

ider build->rebuild project。Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过。由于 Rebuild 的目标只有 Project,所以 Rebuild 每次花的时间会比较长。 参考:资料

css-transform对position:fixed影响

在betterScroll尝试使用position:fixed固定首列,然而并不能实现固定。因为 bscroll / iscroll 是基于 transform 属性实现滚动的, 所以 iscroll 会通过实时修改元素的 transform 属性以达到滚动的效果。父元素如果存在 transform 属性,子元素的 position: fixed 属性无效。betterScroll有个 useTr

【python 编码问题】UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not

插入oracle 数据发生 错误:UnicodeEncodeError: 'ascii' codec can't encode characters in position 131-136: ordinal not in range(128) 先说解决办法: python2.7版本,在开头加入下面语句 import sysreload(sys)sys.setdefaultencoding

The `XXXUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build......

出现的警告: [!] The `ColorInHeartUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-ColorInHeart-ColorInHeartUITests/Po

JS实现将两个相同的json对象合并成为一个新对象(对象中包含list或者其他对象)source===target(不破坏target的非空值)

重点申明一下, 这个方法 只限于两个完全一样的对象 ,不一样的对象请使用 下面的进行合并,   <script>let form = {name: 'liming', sex: '男'};let obj = {class: '一班', age: 15};console.log('before', form);Object.assign(form, obj); //该方法可以完成console.

Unexpected token d in JSON at position 5, check bodyParser config错误解决

错误原因:json格式不对 { desc="设备1", iotProjectId=11 } 解决:通过json在线校验格式校验json格式,找出错误原因,修改 在线JSON校验格式化工具(Be JSON) 修改: {"desc": "设备","iotProjectId": 11}

【HarmonyOS】安装包报错,code:9568282 error: install releaseType target not same.

【HarmonyOS】安装包报错,code:9568282 error: install releaseType target not same. 报错信息 Install Failed: error: failed to install bundle. code:9568282 error: install releaseType target not same. You can also

jQuery 获取元素位置 offset() 和 position()

本篇文件向大家介绍的方法是 offset() 和 position() ,这两个方法有什么关系?下面的内容做详细介绍。 offset()功能描述:在匹配的元素集合中,获取的第一个元素的当前坐标,坐标相对于文档。 position() 功能描述:获取匹配元素中第一个元素的当前坐标,相对于offset parent的坐标。( 注:offset parent指离该元素最近的而且被定位过的祖先元素 )