Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ed71f0f

Browse files
committed
feat: add solutions to lcp problem: No.28
1 parent 0070599 commit ed71f0f

File tree

5 files changed

+117
-1
lines changed

5 files changed

+117
-1
lines changed

‎lcp/LCP 28. 采购方案/README.md‎

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,77 @@
4343
<!-- 这里可写当前语言的特殊实现逻辑 -->
4444

4545
```python
46-
46+
class Solution:
47+
def purchasePlans(self, nums: List[int], target: int) -> int:
48+
nums.sort()
49+
i, j = 0, len(nums) - 1
50+
res = 0
51+
while i < j:
52+
if nums[i] + nums[j] > target:
53+
j -= 1
54+
else:
55+
res += (j - i)
56+
i += 1
57+
return res % 1000000007
4758
```
4859

4960
### **Java**
5061

5162
<!-- 这里可写当前语言的特殊实现逻辑 -->
5263

5364
```java
65+
class Solution {
66+
public int purchasePlans(int[] nums, int target) {
67+
Arrays.sort(nums);
68+
int res = 0, mod = 1000000007;
69+
for (int i = 0, j = nums.length - 1; i < j; ++i) {
70+
while (i < j && nums[i] + nums[j] > target) {
71+
--j;
72+
}
73+
if (i < j) {
74+
res = (res + j - i) % mod;
75+
}
76+
}
77+
return res;
78+
}
79+
}
80+
```
81+
82+
### **C++**
83+
84+
```cpp
85+
class Solution {
86+
public:
87+
int purchasePlans(vector<int>& nums, int target) {
88+
const int MOD = 1000000007;
89+
sort(nums.begin(), nums.end());
90+
int res = 0;
91+
for (int i = 0, j = nums.size() - 1; i < j; ++i)
92+
{
93+
while (i < j && nums[i] + nums[j] > target) --j;
94+
if (i < j) res = (res + j - i) % MOD;
95+
}
96+
return res;
97+
}
98+
};
99+
```
54100
101+
### **Go**
102+
103+
```go
104+
func purchasePlans(nums []int, target int) int {
105+
sort.Ints(nums)
106+
res, mod := 0, 1000000007
107+
for i, j := 0, len(nums)-1; i < j; i++ {
108+
for i < j && nums[i]+nums[j] > target {
109+
j--
110+
}
111+
if i < j {
112+
res = (res + j - i) % mod
113+
}
114+
}
115+
return res
116+
}
55117
```
56118

57119
### **...**
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution {
2+
public:
3+
int purchasePlans(vector<int>& nums, int target) {
4+
const int MOD = 1000000007;
5+
sort(nums.begin(), nums.end());
6+
int res = 0;
7+
for (int i = 0, j = nums.size() - 1; i < j; ++i)
8+
{
9+
while (i < j && nums[i] + nums[j] > target) --j;
10+
if (i < j) res = (res + j - i) % MOD;
11+
}
12+
return res % MOD;
13+
}
14+
};

‎lcp/LCP 28. 采购方案/Solution.go‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
func purchasePlans(nums []int, target int) int {
2+
sort.Ints(nums)
3+
res, mod := 0, 1000000007
4+
for i, j := 0, len(nums)-1; i < j; i++ {
5+
for i < j && nums[i]+nums[j] > target {
6+
j--
7+
}
8+
if i < j {
9+
res = (res + j - i) % mod
10+
}
11+
}
12+
return res
13+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution {
2+
public int purchasePlans(int[] nums, int target) {
3+
Arrays.sort(nums);
4+
int res = 0, mod = 1000000007;
5+
for (int i = 0, j = nums.length - 1; i < j; ++i) {
6+
while (i < j && nums[i] + nums[j] > target) {
7+
--j;
8+
}
9+
if (i < j) {
10+
res = (res + j - i) % mod;
11+
}
12+
}
13+
return res % mod;
14+
}
15+
}

‎lcp/LCP 28. 采购方案/Solution.py‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution:
2+
def purchasePlans(self, nums: List[int], target: int) -> int:
3+
nums.sort()
4+
i, j = 0, len(nums) - 1
5+
res = 0
6+
while i < j:
7+
if nums[i] + nums[j] > target:
8+
j -= 1
9+
else:
10+
res += (j - i)
11+
i += 1
12+
return res % 1000000007

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /