-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #216 from danielsss/master
Add the TypeScript code and docs for Chapter of Linear Search
- Loading branch information
Showing
3 changed files
with
87 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
/** | ||
* File: linear_search.ts | ||
* Created Time: 2023-01-07 | ||
* Author: Daniel (better.sunjian@gmail.com) | ||
*/ | ||
|
||
import ListNode from '../module/ListNode.ts'; | ||
|
||
/* 线性查找(数组)*/ | ||
function linearSearchArray(nums: number[], target: number): number { | ||
// 遍历数组 | ||
for (let i = 0; i < nums.length; i++) { | ||
// 找到目标元素,返回其索引 | ||
if (nums[i] === target) { | ||
return i; | ||
} | ||
} | ||
// 未找到目标元素,返回 -1 | ||
return -1; | ||
} | ||
|
||
/* 线性查找(链表)*/ | ||
function linearSearchLinkedList(head: ListNode | null, target: number): ListNode | null { | ||
// 遍历链表 | ||
while (head) { | ||
// 找到目标结点,返回之 | ||
if (head.val === target) { | ||
return head; | ||
} | ||
head = head.next; | ||
} | ||
// 未找到目标结点,返回 null | ||
return null; | ||
} | ||
|
||
/* Driver Code */ | ||
const target = 3; | ||
|
||
/* 在数组中执行线性查找 */ | ||
const nums = [ 1, 5, 3, 2, 4, 7, 5, 9, 10, 8 ]; | ||
const index = linearSearchArray(nums, target); | ||
console.log('目标元素 3 的索引 =', index); | ||
|
||
/* 在链表中执行线性查找 */ | ||
const head = ListNode.arrToLinkedList(nums); | ||
const node = linearSearchLinkedList(head, target); | ||
console.log('目标结点值 3 的对应结点对象为', node); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters