leetcode x的平方根 c语言 
时间: 2023-04-29 22:06:25 浏览: 66
题目描述:求解LeetCode平方根。
解题思路:可以使用二分查找法,在区间[0, x]内查找平方根。每次取中间值mid,如果mid的平方小于x,则在[mid, x]中继续查找;如果mid的平方大于x,则在[0, mid]中继续查找;如果mid的平方等于x,则返回mid。这样直到区间缩小到一个足够小的范围,即可得到近似的平方根。
以下是Python代码实现:
```
class Solution:
def mySqrt(self, x: int) -> int:
l, r = 0, x
while l <= r:
mid = (l + r) // 2
if mid * mid <= x < (mid + 1) * (mid + 1):
return mid
elif x < mid * mid:
r = mid - 1
else:
l = mid + 1
```
相关问题
leetcode c语言
抱歉,你的问题不太清楚。你是否可以提供更多细节或者明确你的问题是什么?这样我才能更好地回答你。谢谢!
#### 引用[.reference_title]
- *1* [【C语言刷题——Leetcode10道简单题】](https://blog.csdn.net/weixin_60478154/article/details/125235331)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [【C语言刷题——7道leetcode简单题】](https://blog.csdn.net/weixin_60478154/article/details/125118415)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [【C语言刷题——Leetcode12道题】带你起飞,飞进垃圾堆](https://blog.csdn.net/weixin_60478154/article/details/125441263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
leetcode 第102题 c语言实现
可以使用队列来实现二叉树的层序遍历,具体实现可以参考以下代码:
```
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int** levelOrder(struct TreeNode* root, int* returnSize, int** returnColumnSizes){
if (root == NULL) {
*returnSize = ;
return NULL;
}
int** res = (int**)malloc(sizeof(int*) * 100);
*returnColumnSizes = (int*)malloc(sizeof(int) * 100);
int front = , rear = ;
struct TreeNode* queue[100];
queue[rear++] = root;
while (front < rear) {
int size = rear - front;
(*returnColumnSizes)[*returnSize] = size;
res[*returnSize] = (int*)malloc(sizeof(int) * size);
for (int i = ; i < size; i++) {
struct TreeNode* node = queue[front++];
res[*returnSize][i] = node->val;
if (node->left) {
queue[rear++] = node->left;
}
if (node->right) {
queue[rear++] = node->right;
}
}
(*returnSize)++;
}
return res;
}
```
相关推荐
















